首页 > 解决方案 > 将整数添加到 ArrayList 直到到达行尾

问题描述

我有一个file充满数据的。我想在 to 之后添加哪些integers,然后将其放入. 读到行尾有什么问题?charArrayListArrayListmap

我的代码:放入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);

标签: javafileeol

解决方案


你使用了错误的功能

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

推荐阅读