字串轉數字(with Java)
阿新 • • 發佈:2019-09-28
1. 字串中提取數字
兩個函式可以幫助我們從字串中提取數字(整型、浮點型、字元型...)。
- parseInt()、parseFloat()
- valueOf()
String str = "1230";
int d = Integer.parseInt(str); //靜態函式直接通過類名呼叫
//or int d3 = Integer.valueOf("1230"); System.out.println("digit3: " + d3);
注意:從字串中提取可能會產生一種常見的異常: NumberFormatException。
原因主要有兩種:
-
Input string contains non-numeric characters. (比如含有字母"123aB")
-
Value out of range.(比如Byte.parseByte("128") byte的數值範圍在 -128~127)
解決方法:
通過 try-catch-block 提前捕捉潛在異常。
1 try { 2 float d2 = Float.parseFloat(str); 3 System.out.printf("digit2: %.2f ", d2 ); 4 } catch (NumberFormatException e){ 5 System.out.println("Non-numerical string only."); 6 } 7 8 try { 9 byte d4 = Byte.parseByte(str); 10 System.out.println("digit3: " + d4); 11 } catch (NumberFormatException e) { 12 System.out.println("\nValue out of range. It can not convert to digits."); 13 }
2. 數字轉字串
使用String類的valueOf()函式
String s = String.valueOf(d);
3. 程式碼
1 public class StringToDigit { 2 public static void main(String[] args) { 3 4 //convert string to digits using parseInt()、parseFloat()... 5 String str = "127"; 6 int d = Integer.parseInt(str); 7 System.out.printf("d: %d ", d); 8 9 try { 10 float d2 = Float.parseFloat(str); 11 System.out.printf("digit2: %.2f ", d2 ); 12 } catch (NumberFormatException e){ 13 System.out.println("Non-numerical string only."); 14 } 15 16 17 //or using valueOf() 18 int d3 = Integer.valueOf("1230"); 19 System.out.println("digit3: " + d3); 20 21 try { 22 byte d4 = Byte.parseByte(str); 23 System.out.println("digit3: " + d4); 24 } catch (NumberFormatException e) { 25 System.out.println("\nValue out of range. It can not convert to digits."); 26 } 27 28 //convert digits to string using valueOf() 29 System.out.println(String.valueOf(d)); 30 System.out.println(String.valueOf(d3)); 31 } 32 }
&n