1. 程式人生 > >字串轉數字(with Java)

字串轉數字(with Java)

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 }
View Full Code

&n