スキャナーを使用して行番号を取得する方法
-
19-09-2019 - |
質問
私は、各入力を通じてスキャナ反復するため、行番号を取得する方法をその行でテキストファイルの行を読み取るためにスキャナを使用しますがよ私のプログラムは、このようなものです:?
s = new Scanner(new BufferedReader(new FileReader("input.txt")));
while (s.hasNext()) {
System.out.print(s.next());
これは正常に動作しますが、例えばます:
1,2,3 3,4,5
私は、私はそれを得るのですか2.Howライン1と3,4,5である1,2,3を意味し、それの行番号が一致しているかを知りたい?
解決
あなたは 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