我想解析一個文件到一個地圖。我試圖解析的文本(由sys在sys中顯示)是NumberFormatException拋出一個正確的字符串?
10 przysuń hotel o 90 metrów
。每個單詞分隔\t
該文件是UTF-8編碼的。
這裏是我的方法:
private void readFile() {
try {
if (transcriptFile == null)
transcriptFile = new File(transcriptPath);
lines = Files.readAllLines(transcriptFile.toPath());
for (String s : lines) {
if (!s.isEmpty()) {
List<String> parts = Arrays.asList(s.split("\t"));
System.out.println(parts);
int id = Integer.parseInt(parts.get(0).trim());
parts.remove(0);
String text = String.join(" ",parts);
map.put(id,text);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
而且我得到這個異常:
[10, przysuń, hotel, o, 90, metrów ]
java.lang.NumberFormatException: For input string: "10"
at
java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:580)
at Controller.readFile(Controller.java:143)
at Controller.access$000(Controller.java:29)
at Controller$SpeechTask.call(Controller.java:202)
at Controller$SpeechTask.call(Controller.java:154)
at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.lang.Thread.run(Thread.java:748)
我看不出爲什麼這不會是可解析。
也許在字符串中有一些不可見的特殊字符?如果你首先去掉所有的非數字,請嘗試'int id = Integer.parseInt(parts.get(0).replaceAll(「\\ D +」,「」));' – janos
可能是一個字符編碼問題。 – KevinO
可能重複[什麼是NumberFormatException,我該如何解決它?](http://stackoverflow.com/questions/39849984/what-is-a-numberformatexception-and-how-can-i-fix-it) – xenteros