我有以下代码
while(((line = in.readLine()) != null))
{
String[] val = line.split("<>");
courses.put(val[0], val[1]);
这是我正在尝试阅读的文字
1<>CIS 101-1
2<>CIS 101-2
3<>CIS 231-1
4<>CIS 231-2
5<>CIS 234-1
6<>CIS 234-2
我在尝试在
行运行程序时得到ArrayIndexOutOfBoundsException
courses.put(val[0], val[1]);
任何人都可以提供任何帮助吗?
答案 0 :(得分:2)
所有这些行都应该生成一个长度为2的数组。
确保文件末尾没有空行。
例如,您可以通过添加类似
的内容来跳过不符合模式的行while (...) {
if (!line.contains("<>"))
continue;
...
}
答案 1 :(得分:2)
你的一条线上没有<>
。可能是最后一行。在第6行之后你有一个行尾吗?您应该编写更多防御性代码 - 修剪您读取的每一行(以消除任何前导/尾随空格),然后忽略该行,如果它的长度为零。
答案 2 :(得分:0)
我想你最后读了一个空行,所以val[1]
超出了数组的末尾!