题
我用扫描仪读取一行文本文件中的行,但再怎么弄,因为每个通过扫描仪输入迭代行数我的计划是这样的:
s = new Scanner(new BufferedReader(new FileReader("input.txt")));
while (s.hasNext()) {
System.out.print(s.next());
此工作正常,但例如:
1,2,3 3,4,5
我想知道它的行号这意味着1,2,3是1号线与3,4,5是符合2.How我明白了吗?
解决方案
您可以使用 LineNumberReader
在代替BufferedReader
来跟踪行号码的同时,扫描仪就执行操作。
LineNumberReader r = new LineNumberReader(new FileReader("input.txt"));
String l;
while ((l = r.readLine()) != null) {
Scanner s = new Scanner(l);
while (s.hasNext()) {
System.out.println("Line " + r.getLineNumber() + ": " + s.next());
}
}
注意:的“明显”的解决方案,我先贴在扫描仪无法正常工作提前读取当前令牌的
<击> 撞击>
<击>r = new LineNumberReader(new FileReader("input.txt"));
s = new Scanner(r);
while (s.hasNext()) {
System.out.println("Line " + r.getLineNumber() + ": " + s.next());
}
击> <击> 撞击>
其他提示
只要把一个计数器在循环:
s = new Scanner(new BufferedReader(new FileReader("input.txt")));
for (int lineNum=1; s.hasNext(); lineNum++) {
System.out.print("Line number " + lineNum + ": " + s.next());
}
不隶属于 StackOverflow