2017-07-29 45 views
0

我有一個大String被轉換成Stop對象,但我每次使用此功能時返回java.lang.NumberFormatException: Invalid int: "1" 我不明白爲什麼"1"不是有效String待轉換Int ...java.lang.NumberFormatException:無效INT:「1」

我在哪裏錯了?

private static List<List<String>> rawToList(String string) { 
    List<List<String>> result = new ArrayList<>(); 

    for (String row : Arrays.asList(string.split("\n"))) 
     result.add(Arrays.asList(row.split(","))); 

    result.remove(0); 

    return result; 
} 

private static List<Stop> rawToStops(String string) { 
    List<Stop> stops = new ArrayList<>(); 

    for (List<String> entity : rawToList(string)) 
     stops.add(new Stop(
       entity.get(0), 
       entity.get(1), 
       entity.get(2), 
       entity.get(3), 
       Double.parseDouble(entity.get(4)), 
       Double.parseDouble(entity.get(5)), 
       Integer.parseInt(entity.get(6)), 
       Integer.parseInt(entity.get(7)))); 

    return stops; 
} 

String是相當長。我從this txt文件中讀取它。

+2

顯示了輸入的字符串,也rawToList'是如何實現的'。幫助我們幫助你... – alfasin

+1

該字符串包含的不僅僅是1,那麼如何使用調試器來檢查該字符串真正包含的內容? – Tom

+0

可能重複[什麼是NumberFormatException,我該如何解決它?](https://stackoverflow.com/questions/39849984/what-is-a-numberformatexception-and-how-can-i-fix-it) – xenteros

回答

3

解決

我必須刪除非打印Unicode字符與此:

string.replaceAll("\\p{C}", ""); 
+0

只是檢查它回答 –

+0

我不能接受我自己的答案在2天內 _stackoverflow rules_ –

+1

超級只是檢查它時間允許;) –

相關問題