我用扫描仪读取一行文本文件中的行,但再怎么弄,因为每个通过扫描仪输入迭代行数我的计划是这样的:

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());
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top