Home | 简体中文 | 繁体中文 | 杂文 | Github | 知乎专栏 | Facebook | Linkedin | Youtube | 打赏(Donations) | About
知乎专栏

3.2. Integer 整形

3.2.1. 字符串转整数

			
Integer x =Integer.valueOf("1024");
			
			

3.2.2. 进制转换

			
十进制转成十六进制:   
  
Integer.toHexString(int i)   
  
十进制转成八进制   
  
Integer.toOctalString(int i)   
  
十进制转成二进制   
  
Integer.toBinaryString(int i)   
  
十六进制转成十进制   
  
Integer.valueOf("FFFF",16).toString()   
  
八进制转成十进制   
  
Integer.valueOf("876",8).toString()   
  
二进制转十进制   
  
Integer.valueOf("0101",2).toString()   
  
  
  
有什么方法可以直接将2,8,16进制直接转换为10进制的吗?   
  
java.lang.Integer类   
  
parseInt(String s, int radix)   
  
使用第二个参数指定的基数,将字符串参数解析为有符号的整数。   
  
examples from jdk:   
  
parseInt("0", 10) returns 0   
  
parseInt("473", 10) returns 473   
  
parseInt("-0", 10) returns 0   
  
parseInt("-FF", 16) returns -255   
  
parseInt("1100110", 2) returns 102   
  
parseInt("2147483647", 10) returns 2147483647   
  
parseInt("-2147483648", 10) returns -2147483648   
  
parseInt("2147483648", 10) throws a NumberFormatException   
  
parseInt("99",throws a NumberFormatException   
  
parseInt("Kona", 10) throws a NumberFormatException   
  
parseInt("Kona", 27) returns 411787    			
			
			
			
int i=100;   

String binStr=Integer.toBinaryString(i);   
String otcStr=Integer.toOctalString(i);   
String hexStr=Integer.toHexString(i);   
System.out.println(binStr);   
			
			
		
Integer factor = Integer.valueOf(args[0]);   
  
String s;   

  
s = String.format("%d", factor);     
System.out.println(s);   
  
s = String.format("%x", factor);   
System.out.println(s);   
  
s = String.format("%o", factor);   
System.out.println(s);   
  
其他方法:   
  
Integer.toHexString(你的10进制数);   
  
例如   
  
String temp = Integer.toHexString(75);   
  
输出temp就为 4b
		
		

3.2.3. 前面补零

			
public static String frontCompWithZore(int sourceDate,int formatLength) {  
  
  String newString = String.format("%0"+formatLength+"d", sourceDate);   
  return newString;  
}  			
			
			

3.2.4. NumberFormat 数字格式化

			
package cn.netkiller.test;

import java.text.NumberFormat;
import java.util.Locale;

public class Test {
    
    public static void main(String[] args) {

        NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.ENGLISH, NumberFormat.Style.SHORT);
        System.out.println(fmt.format(1000));
        System.out.println(fmt.format(100000));
        System.out.println(fmt.format(1000000));

        fmt = NumberFormat.getCompactNumberInstance(Locale.ENGLISH, NumberFormat.Style.LONG);
        System.out.println(fmt.format(1000));
        System.out.println(fmt.format(100000));
        System.out.println(fmt.format(1000000));

        fmt = NumberFormat.getCompactNumberInstance(Locale.CHINESE, NumberFormat.Style.SHORT);
        System.out.println(fmt.format(1000));
        System.out.println(fmt.format(100000));
        System.out.println(fmt.format(1000000));

        fmt = NumberFormat.getCompactNumberInstance(Locale.CHINESE, NumberFormat.Style.LONG);
        System.out.println(fmt.format(1000));
        System.out.println(fmt.format(100000));
        System.out.println(fmt.format(1000000));
        
    }
}
			
			
			
1K
100K
1M
1 thousand
100 thousand
1 million
1,000
10万
100万
1,000
10万
100万