我有file
填充了数据。我想在integers
之后添加char
到ArrayList
,然后将ArrayList
添加到map
。读到底有什么问题?
我的代码:将integers
放入ArrayList
,直到找到换行符。
数据:
300 J 2 1 3
900 K 0 2
500 E 4 1
100 F 5

我的代码:
while(scan.next() != "\n") {
indexes.add(scan.nextInt());
}
myMap.put(name.get(i), indexes);

答案 0 :(得分:1)
您使用了错误的功能
scan.next()
返回:
查找并返回此扫描仪的下一个完整令牌。在完成令牌之前和之后是与分隔符模式匹配的输入。即使之前的hasNext()调用返回true,此方法也可能在等待输入扫描时阻塞。
使用!=
与"\n"
进行比较是错误的。 (如果你想比较,你必须使用String.equals()
。如果你想测试文件结尾,你应该使用hasNext()
你不需要直到行尾,scanner.nextLine()
为你读完整行
while (scan.hasNext()) {
String line = scan.nextLine();
String[] parts = line.split(" ");
for (String part : parts) {
try {
int n = Integer.parseInt(part);
// Add to your list
indexes.add(n);
} catch (Exception ex) {
// log
}
}
}