外部ファイルから情報を読み込み、画面にさまざまな統計情報を表示しようとしています。私は、行と段落の量をうまく追跡することができましたが、単語の総量を見つけようとすると問題に遭遇しました。入力ファイルから単語の数を調べようとしています
私は2番目のwhileループをとり、それを最初に置くと、それは正しい単語の量を与えるが間違った行と段落を与えていることに気がつきましたが、今のところそれを実行すると、段落は間違った言葉です。
私は本当にこれがなぜそうであるかを理解するのにあなたの助けに感謝します。ありがとうございました!
int x = 0, words = 0, y = 0;
System.out.print("Name of the input file: ");
in = kbd.nextLine().toLowerCase();
System.out.println(" ");
// Set up connection to the input file
Scanner input = new Scanner(new FileReader(in));
// Set up connection to an output file
PrintWriter output = new PrintWriter(new FileOutputStream("datacopy.txt"));
int lineNum = 0;
while (input.hasNextLine()) {
String line;
line = input.nextLine();
if (line.length() == 0) {
x++;
}
output.println(line + "\n");
lineNum++;
}
while (input.hasNext()) {
String line = input.next();
words++;
}
System.out.println("Words: " + words);
System.out.println("Lines: " + lineNum);
System.out.println("Paragraphs " + --x);
System.out.println(" ");
System.out.println("Output file datacopy.txt created.");
を処理するより効率的な方法です。ありがとうございました! – s24569
@ s24569この解決策は間違いなく機能しますが、ファイルを2回読み込みます。これにより作業量が倍になり、特にリモートドライブに配置されている場合は、大容量のファイルに対して非常に非効率的になります。 – dasblinkenlight