一、字符串轉數字
1、通過基本類型對應的包裝類則可以實現把字符串轉換成基本類型。Java爲8種基本類型都提供了對
應的包裝類:boolean對應Boolean、byte對應Byte、short對應Short、int對應Integer、long對
應Long、char對應Character、float對應Float、double對應Double,8個包裝類都提供了一個
parseXxx(String str)靜態方法用於將字符串轉換成基本類型。(**注意:如果字符串不是數值型字
符串,轉換將導致一個運行時錯誤。**)
String s = "123";
byte b = Byte.parseByte(s);
short t = Short.parseShort(s);
int i = Integer.parseInt(s);
long l = Long.parseLong(s);
Float f = Float.parseFloat(s);
Double d = Double.parseDouble(s);
boolean bo = Boolean.parseBoolean(s);
char c = Character.parseCharacter(s);
2、i=Integer.valueOf(s).intValue();
總結:方法1直接使用靜態方法,不會產生多餘的對象,但會拋出異常。方法2,Integer.valueOf(s
) 相當於new Integer(Integer.parseInt(s)),也會拋異常,但會多產生一個對象。
二、數字轉字符串
1、String.valueOf(Object)
各種數字類型轉換成字符串型:
// 其中 value 爲任意一種數字類型。將不用擔心object是否爲null值這一問題。
String s = String.valueOf(value);
Jdk裏String. valueOf(Object)源碼如下:
/**
*
* Returns the string representation of the Object argument.
* @param obj an Object.
* @return if the argument is null, then a string equal to
* “null”; otherwise, the value of
* obj.toString() is returned.
* @see java.lang.Object#toString()
*/
public static String valueOf(Object obj) {
return (obj == null) ? “null” : obj.toString();
}
從上面的源碼可以很清晰的看出null值不用擔心的理由。但是,這也恰恰給了我們隱患。我們應當注
意到,當object爲null時,String.valueOf(object)的值是字符串”null”,而不是null!!!
在使用過程中切記要注意。
2、Object.toString()
在使用時要注意,必須保證object不是null值,否則將拋出NullPointerException異常。
3、i + “”
4、(String)要轉換的對象
使用這種方法時,需要注意的是類型必須能轉成String類型。因此最好用instanceof做個類型檢查,
以判斷是否可以轉換。否則容易拋出CalssCastException異常。此外,需特別小心的是因定義爲
Object類型的對象在轉成String時語法檢查並不會報錯,這將可能導致潛在的錯誤存在。這時要格外
小心。此外,因null值可以強制轉換爲任何java類類型,(String)null也是合法的。
效率:方法2>方法3>方法1,方法1和方法3差別不大。