for循环将data.txt中的数据分配给字符串fileData,并且可以自行正常工作。当我尝试解析字符串时,我得到一个“String index out of range”错误。有没有办法来解决这个问题?文件data.txt的格式如下:
Mike
2
50
50
Patrick
1
220
Patrick
3
20
30
30
这是我的代码:
Scanner inFile = new Scanner(new FileReader("data.txt"));
int y;
int x;
for (y = 1; y <= 3; y++)
for (x = 1; x <=4; x++) {
String fileData = inFile.next();
System.out.print(fileData);
int mData = Integer.parseInt(fileData.substring(4, 9));
}
}
答案 0 :(得分:0)
你的问题在于:
fileData.substring(4, 9)
来自子串doc的:
抛出:IndexOutOfBoundsException - 如果beginIndex为负数,或 endIndex大于此String对象的长度,或 beginIndex大于endIndex。
您没有检查输入的大小,并且您的文件包含小于9的单词,因此异常