2015-08-08 61 views
0

我是.net開發人員,剛開始使用Java開發。目標虛擬機發生異常:對於輸入字符串:「1」java.lang.NumberFormatException

br = new BufferedReader(new FileReader(filePath)); 
while ((sCurrentLine = br.readLine()) != null) { 
    int vertIdx = sCurrentLine.trim().indexOf(space); 
    String ver = sCurrentLine.trim().substring(0,vertIdx); 
    int vrtInt = Integer.parseInt(ver.trim()); // Here is the error 
    //Code Continues 
} 

在的Integer.parseInt(ver.trim()),我收到以下異常:

Exception occurred in target VM: For input string: "1" 
java.lang.NumberFormatException: For input string: "1" 
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 
    at java.lang.Integer.parseInt(Integer.java:580) 
    at java.lang.Integer.parseInt(Integer.java:615) 
    at kosaraju.Graph.createGraph(Graph.java:75) 
    at kosaraju.Graph.main(Graph.java:247) 

此時執行的,我對sCurretline值爲 「1 4」 和版本是「1」 我無法弄清楚這樣一個小問題。有人可以指出我的代碼中的錯誤嗎?

這裏是我的觀察窗口:

enter image description here

+0

請勿張貼在引號中的例外。使用代碼塊(編輯器上的「{}」按鈕)來保存其格式。也請縮進您的代碼,以便更容易閱讀並查看其片段的範圍。 – Pshemo

+0

你確定在你想分析的字符串中沒有不可打印的字符嗎?嘗試打印每個字符(或最好是它的代碼點)像'System.out.println(Arrays.toString(yourString.chars()。toArray()));' – Pshemo

+0

我得到這個在調試輸出窗口:[65279,49] 。我的字符串的值爲1 – PushCode

回答

2

基於結果[65279, 49]它看起來像你的文字與Zero Width No-Break Space,因爲它不被視爲空白不能修剪,也不解析爲數字開始。

您需要將其刪除,例如使用replaceAll("[^\\d+-]","")將刪除任何不是digit,+-的字符。

+0

它工作。但是,請你解釋一下這個問題。我不會在c#代碼中進行這些替換,而我今天剛剛開始使用Java。 – PushCode

+0

@PushCode我不是C#開發人員,所以我不能告訴你爲什麼'trim()'還有刪除非斷點空格,但似乎Java不會將它們作爲可以通過'trim()'刪除的白字符。我不知道我還能說什麼。如果你需要更多關於'replaceAll(「[^ \\ d + - ]」,「」)'的信息,那麼它就是允許我們爲正則表達式找到匹配的方法,並用其他東西替換它(在我們的例子中用空字符串,這意味着我們正在刪除匹配的部分)。 – Pshemo

0

您需要刪除字符蒙山.replaceAll( 「[^ 0-9]」, 「」)

br = new BufferedReader(new FileReader(filePath)); 
 
while ((sCurrentLine = br.readLine()) != null) { 
 
    int vertIdx = sCurrentLine.trim().indexOf(space); 
 
    String ver = sCurrentLine.trim().substring(0,vertIdx); 
 
    ver=ver.replaceAll("[^0-9]", ""); 
 
    int vrtInt = Integer.parseInt(ver.trim()); // Here is the error 
 
    //Code Continues 
 
}

相關問題