我寫一個程序,它根據「changes.txt」,並輸出到另一個文件需要輸入從文件「items.txt」和添加或刪除行。爪哇的StringIndexOutOfBoundsException
這是 「items.txt」 文件:
101,Nail #1
102,Nail #2
103,Nail #3
104,Hammer Small
105,Hammer Large
這是更改文件:
A,106,Chainsaw 12"
D,102
d,104
a,107,Chainsaw 10"
這是我的方法,該方法具有的問題(void changes()
是行號132):
void changes() {
try {
fileChange = new Scanner(new File("changes.txt"));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
fileChange.useDelimiter(",|\r|\n");
while (fileChange.hasNext()) {
String codeStr = fileChange.next();
if ((codeStr.charAt(0) == 'D') || (codeStr.charAt(0) == 'd')) {
delete(fileChange.nextInt());
System.out.println("delete");
} else if ((codeStr.charAt(0) == 'A') || (codeStr.charAt(0) == 'a')) {
add(fileChange.nextInt(), fileChange.next());
System.out.println("add");
} //else
System.out.println("done");
}
fileChange.close();
}
這是輸出我得到:
add
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
done
我在打印語句增加了「添加」和「完成」只是爲了幫助在早期診斷問題。即使它打印「添加」和「完成」,也不會將任何內容發送到輸出文件。我猜這是由於StringIndexOutOfBoundsException
這是我的第一個關於堆棧溢出的問題,所以請耐心等待任何格式問題或不當禮節。
使用調試器,單步執行代碼。看看它在崩潰時使用的值。 – Robert
稍後的一些迭代可能會引發異常。 (Sry,我現在喝醉了。)哪一行會拋出異常? –
您可能會嘗試檢查空輸入的第一個字母(根本沒有字母)。 – Robert