将整数添加到ArrayList直到到达行尾

时间:2018-05-14 18:23:50

标签: java file eol

我有file填充了数据。我想在integers之后添加charArrayList,然后将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);




1 个答案:

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