Java 中 String 與 int 的互相轉化知多少?

前言

本文注重於介紹 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,會拋出相應的異常。

效率對比

兩種方法在效率上大體相同。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章