Java:无法解析for循环中的字符串

时间:2015-12-10 21:42:46

标签: java loops for-loop filereader

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));
    } 
}

1 个答案:

答案 0 :(得分:0)

你的问题在于:

fileData.substring(4, 9)
来自子串doc

  

抛出:IndexOutOfBoundsException - 如果beginIndex为负数,    endIndex大于此String对象的长度,或   beginIndex大于endIndex。

您没有检查输入的大小,并且您的文件包含小于9的单词,因此异常