以下代码为例
while (lineScan.hasNextLine()) {
int x = lineScan.nextInt();
x = lineScan.nextInt();
x = lineScan.nextInt();
x = lineScan.nextInt();
x = lineScan.nextInt();
System.out.println(x + "\n");
}
将打印出每五个整数。
是否有一种简单的方法可以跳过每五个整数?
答案 0 :(得分:3)
while (lineScan.hasNextLine()) {
for(int i=0; i<5; i++)
x = lineScan.nextInt();
System.out.println(x + "\n");
}
OR
while (lineScan.hasNextLine()) {
for(int i=0; i<4; i++)
lineScan.nextInt();
x = lineScan.nextInt();
System.out.println(x + "\n");
}
似乎相当原始,但是,它有效。
答案 1 :(得分:3)
我看到很多人检查hasNextLine然后读取整数。我总是被告知,如果你检查hasNextX,你应该通过调用nextX来跟踪它,如果检查通过,但是从来没有下一个。换句话说,如果你检查hasNextLine(),你应该读入nextLine(),如果你想要int,你应该在读入nextInt()之前检查hasNextInt(),其中每次读取一次检查 。在你的情况下,我会阅读该行,然后使用另一个仅适用于该行的Scanner对象进行操作(不要忘记在完成后保存资源时关闭它!)或使用String split。
例如,如果以第一种方式进行,我会做类似的事情:
while (lineScan.hasNextLine()) {
String line = lineScan.nextLine();
Scanner innerScanner = new Scanner(line);
int x = 0;
while (innerScanner.hasNextInt()) {
x = innerScanner.nextInt();
}
System.out.println("" + x);
innerScanner.close();
}
并且第二种方式:
while (lineScan.hasNextLine()) {
String line = lineScan.nextLine();
String[] splitLine = line.split(" "); // the delimiter may be different! a comma?
if (splitLine.length >= 5) {
System.out.println(splitLine[4]);
}
}
答案 2 :(得分:2)
这样做:
int i = 0;
while(lineScan.hasNextLine()) {
i++;
int x = lineScan.nextInt();
if (x%5 == 0) System.out.println(x + "\n");
}
答案 3 :(得分:1)
只做nextInt()
并忽略结果?
答案 4 :(得分:0)
使用循环,我想:
while(lineScan.hasNextLine()) {
for(int i = 0; i < 4; i++) lineScan.nextInt();
System.out.println(Integer.toString(lineScan.nextInt()) + "\n"); // is this supposed to be "popularity"?
}