Integer中常见的基本进制转换:
十进制分别转换为二进制,八进制,十六进制
- public static String toBinaryString(int i)
- public static String toOctalString(int i)
- public static String toHexString(int i)
十进制到其他进制
- public static String toString(int i,int radix)
通过测试我们也发现了进制的范围:2-36
为什么呢?0,…9,a,…z一共36个
示例代码如下:
public class IntegerDemo {
public static void main(String[] args) {
//十进制到二进制,八进制,十六进制
System.out.println(Integer.toBinaryString(100));
System.out.println(Integer.toOctalString(100));
System.out.println(Integer.toHexString(100));
System.out.println("---------------------------");
//十进制到其他进制
System.out.println(Integer.toString(100,10));
System.out.println(Integer.toString(100,2));
System.out.println(Integer.toString(100,8));
System.out.println(Integer.toString(100,16));
System.out.println(Integer.toString(100,5));
System.out.println(Integer.toString(100,7));
System.out.println(Integer.toString(100,-7));
System.out.println(Integer.toString(100,70));
System.out.println(Integer.toString(100,1));
System.out.println(Integer.toString(100,32));
System.out.println(Integer.toString(100,37));
System.out.println(Integer.toString(100,36));
System.out.println("---------------------------");
//其他进制到十进制
//NumberFormatException
System.out.println(Integer.parseInt("100",10));
System.out.println(Integer.parseInt("100",2));
System.out.println(Integer.parseInt("100",8));
System.out.println(Integer.parseInt("100",16));
System.out.println(Integer.parseInt("100",23));
System.out.println(Integer.parseInt("123",2));
}
}
JDK5的新特性:
- 自动装箱:把基本类型转换为包装类类型
- 自动拆箱:把包装类类型转换为基本类型
注意一个小问题:
在使用时,Integer x = null;上面的代码会出现NullPointerException
建议先判断是否为null,再进行使用
示例代码如下:
public class IntegerDemo {
public static void main(String[] args) {
//定义了一个int类型的包装类类型变量
//Integer i = new Integer(100);
Integer ii = 100;
ii += 200;
System.out.println("ii:"+ii);
//反编译之后的代码
//首先,把一个int类型的转换成Integer类型的
//Integer ii = Integer.valueOf(100);//自动装箱
//ii.intValue()返回的是Integer类型的int值,在调用valueof,转换为Integer,赋值给ii
//ii = Integer.valueOf(ii.intValue()+200);//自动拆箱,再自动装箱
//System.out.println((new StringBuilder("ii:")).append("i1:").toString());
Integer iii = null;
//NullPointerException
if(iii != null) {
iii += 1000;
System.out.println(iii);
}
}
}