前言
本文注重於介紹 String 與 int 的互相轉化。
int 轉化爲 String
第一種方法:直接加空字符串
我們直接在 int 類型的數據後面添加空字符串,便可將其轉爲 String 類型的數據。代碼如下:
public class Test {
public static void main(String[] args){
int num = 100;
String str = num + "";
System.out.println("str:" + str);
}
}
結果如下:
第二種方法:String.valueOf(num)
我們直接調用 String.valueOf() 函數便可以將 int 轉化爲 String,代碼如下:
public class Test {
public static void main(String[] args){
int num = 100;
String str = String.valueOf(num);
System.out.println("str:" + str);
}
}
結果如下:
我們來看一下 String.valueOf() 的源碼,可以發現,其基礎爲 Object#toString(),且我們不需要擔心 obj 爲空的問題,當 obj 爲空時,該方法會返回 “null” 而不是 null。
public static String valueOf(Object obj){return (obj==null)?"null":obj.toString();}
第三種方法:Integer.toString(num)
使用該方法可以將 int 轉化爲 String,代碼如下:
public class Test {
public static void main(String[] args){
int num = 111;
String str = Integer.toString(num);
System.out.println("str:" + str);
}
}
調用該方法的基礎是 Object#toString(),另外我們需要確保 obj 不爲 null,否則會拋出 NullPointerException 異常。obj 爲 null 的例子如下:
public class Test {
public static void main(String[] args){
Integer num = null;
String str = Integer.toString(num);
System.out.println("str:" + str);
}
}
結果如下,可以發現確實拋出了空指針異常。
效率對比
使用第二或第三種方法效率要比第一種方法高。
String 轉化爲 int
第一種方法:Integer.parseInt(str)
調用 Integer.parseInt() 方法可以將 String 轉化爲 int,代碼如下:
public class Test {
public static void main(String[] args){
String str = "1314520";
int num = Integer.parseInt(str);
System.out.println("數字大小爲:" + num);
}
}
結果如下:
如果 String 爲 null,調用 Integer.parseInt(str) 方法會拋出異常。測試代碼如下:
public class Test {
public static void main(String[] args){
String str = null;
int num = Integer.parseInt(str);
System.out.println("數字大小爲:" + num);
}
}
結果如下:
如果 String 不能轉化爲相應的數字,也會拋出相應的異常,代碼如下:
public class Test {
public static void main(String[] args){
String str = "34rr";
int num = Integer.parseInt(str);
System.out.println("數字大小爲:" + num);
}
}
結果如下:
第二種方法:Integer.valueOf(str).intValue()
測試代碼如下:
public class Test {
public static void main(String[] args){
String str = "34";
int num = Integer.valueOf(str).intValue();
System.out.println("數字大小爲:" + num);
}
}
結果如下:
經過測試,與 Integer.parseInt(str) 大體相同,如果字符串不能轉化爲相應的數字或者字符串爲 null,會拋出相應的異常。
效率對比
兩種方法在效率上大體相同。