なぜ私のプログラムは、対応するprint文なしで値を印刷していますか?

Ganlas:

私はJavaでファイルから一連の値を読み込む方法を把握しようとしています。ファイルには、複数の行を有しており、値は、各ラインのカンマで区切られています。ただスキャナIで区切り文字を使用する方法を見つけ出すためにテストプログラムを書いている間、私のプログラムは、ファイルからの値を印刷する際の問題に遭遇しました。プログラムからすべての値を印刷する命令を取得している場合、私は知りません。

これは、(トライループ内で)私の公共の静的な無効メインにあるものです:

File f1 = new File("Data1.txt");
File test = new File("test.txt");
Scanner reader = new Scanner(f1);
Scanner testReader = new Scanner(test);
testReader.useDelimiter(",");

System.out.println("line 18 "+testReader.nextInt());
System.out.println("line 19 "+testReader.nextInt());
System.out.println("line 20 "+testReader.next());
System.out.println("line 21 "+testReader.nextInt());

私はから読んでいたファイルは、test.txtのです。

4,5,6 
7 
8,9,10

そして、これは印刷されているものです。

line 18 4
line 19 5
line 20 6
7
8
line 21 9
s.fuhrm:

あなたのスキャナは、区切り文字として改行文字を見ていません。これは、改行文字がで返されます理由ですscanner.next()

ソリューションは、区切り文字としてスペースやカンマを持つようにスキャナを設定するには、次のとおりです。

testReader.useDelimiter("(,|\\s)");

参照してくださいここのようなパターンに関する詳細は"(,|\\s)"

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=27398&siteId=1