2013-10-10 141 views
1

此代碼必須驗證從findActions輸入數據()方法:java.lang.NumberFormatException:對於輸入字符串:「10.0」

try { 
    System.out.println(findActions(lookingArea.substring(0, right)));// always printing valid number string 
    Integer.parseInt(findActions(lookingArea.substring(0, right)));// checking for number format 
} 
catch(NumberFormatException exc) { 
    System.out.println(exc); 
} 

但我始終有java.lang.NumberFormatException: For input string: "*number*" 就是這麼奇怪,因爲檢查System.out.println(findActions(lookingArea.substring(0, right)));

我得到*number*像10.0

+5

10.0不是整數,使用Double.parseDouble ...有類似問題的SO上有很多問題。 – kosa

+1

'10.0'不是'int'。 –

+0

工作。謝謝。 – George

回答

4

Integer.parseInt並不指望.字符。如果你確定它可以被轉換爲int,然後執行下列操作之一:

  1. 解析它之前消除".0"的字符串的結束,或者
  2. 呼叫Double.parseDouble,並把結果到int

引用上面的鏈接的Javadoc:

字符串中的字符必須都是十進制數字,不同的是 第一個字符可以是ASCII減號「 - 」(「\ u002D」)爲到 表示負值或ASCII加號「+」('\ u002B')到 表示正值。

2

10.0不是整數。相反,您可以使用:

int num = (int) Double.parseDouble(...); 
相關問題