一、Integer轉String
//方法一:Integer類的靜態方法toString()
Integer a = 2;
String str = Integer.toString(a)
//方法二:Integer類的成員方法toString()
Integer a = 2;
String str = a.toString();
//方法三:String類的靜態方法valueOf()
Integer a = 2;
String str = String.valueOf(a);
1、從Integer類的源碼可以看出,Integer的靜態方法toString()和成員方法toString()是一樣的,成員方法里面僅僅是調用了靜態方法而已。如下圖所示:
通過toString()方法,可以把整數(包括0)轉化為字符串,但是Integer如果是null的話,就會報空指針異常。
2、String.valueOf(Object obj)
可以把整型(包括0)轉化為字符串,但是Integer如果是null的話,會轉化為”null”。從String.valueOf(Object obj)方法的源碼可以看出:
public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}
3、當Integer是null的情況下,我們也希望String是null,上面的方法都沒法做到。可以自己寫一個方法:
public static String toString(Object obj) {
return (obj == null) ? null : obj.toString();
}
另外,Apache提供的ObjectUtils.identityToString(Object obj)也可以實現。但是ObjectUtils.toString(Object obj)不行,該方法會把null轉化為”“。
二、String轉Integer
當我們要把String轉化為Integer時,一定要對String進行非空判斷,否則很可能報空指針異常。
String str = "...";
Integer i = null;
if(str!=null){
i = Integer.valueOf(str);
}