Как получить номер строки с помощью сканера

Можно хотеть проверить, чтобы удостовериться, что Вы загружаете свои js файлы в правильном порядке так, чтобы любые зависимости были приняты во внимание.

7
задан skaffman 15 May 2011 в 12:51
поделиться

2 ответа

Вы можете использовать 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());
}

16
ответ дан 6 December 2019 в 06:50
поделиться

Просто введите счетчик в цикл:

s = new Scanner(new BufferedReader(new FileReader("input.txt")));

for (int lineNum=1; s.hasNext(); lineNum++) {
   System.out.print("Line number " + lineNum + ": " + s.next());
}
10
ответ дан 6 December 2019 в 06:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: