2013-10-17 106 views
1

我想將String數組轉換爲Integer。我寫了這個,但是Eclipse將返回一個錯誤:將String轉換爲Integer時的NumberFormatException

下面是代碼:

public static void main(String[] args) throws IOException { 
    BufferedReader br = new BufferedReader(new FileReader("array_list.csv")); 
    String everything = ""; 
    try { 
     StringBuilder sb = new StringBuilder(); 
     String line = br.readLine(); 

     while (line != null) { 
      sb.append(line); 
      sb.append('\n'); 
      line = br.readLine(); 
     } 
     everything = sb.toString(); 
    } finally { 
     br.close(); 
    } 
    int firstArrLenght = everything.indexOf("]"); 
    int secondArrStartIndex = everything.lastIndexOf("[") + 1; 
    int secondArrLenght = everything.lastIndexOf("]") - secondArrStartIndex; 
    String[] firstStrArr = everything.substring(1, firstArrLenght).split(","); 
    String[] secondStrArr = everything.substring(secondArrStartIndex, secondArrLenght).split(","); 

和Eclipse不喜歡這些行。我想在這裏將String Array轉換爲Integer。然後,我將使用其他邏輯的整數。

int[] firstArray = transformToInt(firstStrArr); 
    int[] secondArray = transformToInt(secondStrArr); 

} 


private static int[] transformToInt(String[] arr) { 
    int[] result = new int[arr.length]; 
    for(int i = 0; i < arr.length; i++) { 
     result[i] = Integer.parseInt(arr[i].trim()); 
    } 

    return result; 
} 

異常堆棧跟蹤:

Exception in thread "main" java.lang.NumberFormatException: 
For input string: "" at java.lang.NumberFormatException.forInputString(Unknown Source) 
at java.lang.Integer.parseInt(Unknown Source) 
at java.lang.Integer.parseInt(Unknown Source) 
at Java.transformToInt(Java.java:38) 
at Java.main(Java.java:30) 

任何想法有什麼不好?

+1

你會得到什麼錯誤? – tehlexx

+0

異常在線程 「主」 java.lang.NumberFormatException:對於輸入字符串: 「」 \t在java.lang.NumberFormatException.forInputString在(未知來源) \t在java.lang.Integer.parseInt(未知來源) \t java.lang.Integer.parseInt(來源不明) \t在Java.transformToInt(Java.java:38) \t在Java.main(Java.java:30) – wkg86

+0

調試你的代碼,你會看到多麼容易找到錯誤! – Maroun

回答

4
java.lang.NumberFormatException: For input string: "" 

所以這裏的當前String您要分析是在該行

result[i] = Integer.parseInt(arr[i].trim()); 

這是不可能從一個空字符串得到一個整數值空,這就是exception在說什麼。

你可以做的只是在parsing之前檢查String的空虛程度。

相關問題