【发布时间】:2015-11-25 18:32:53
【问题描述】:
我需要读入一个名为“input.txt”的文件,然后计算该文件中的单词。然后我必须将它们写入另一个名为 output.txt 的文件。
例如:input.txt 中包含“The quick QUICK brown fox”
output.txt 应该如下所示:
1
2 快
3 棕色
四只狐狸
到目前为止,我有以下代码,但不知道我是否走在正确的道路上。
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.util.Scanner;
public class CountWords {
public static void main(String[] args) throws FileNotFoundException {
File file = new File("input.txt");
Scanner sc = new Scanner(new FileInputStream(file));
PrintWriter writer = new PrintWriter("output.txt");
int count = 0;
while (sc.hasNext()) {
String word = sc.next();
if (word.indexOf("\\") == -1){
count++;
writer.printf("%3d",count + " " + word); //should print ----> | # word|
}
break;
}
writer.close(); //close print writer
sc.close(); //close input file
}
}
【问题讨论】:
-
您的输出示例与您的描述不符。你说你想统计文件中的单词。但是那里 fox 只出现了一次,而不是 4 次,brown 出现了一次,而不是 3 次,等等。
-
如果你真的想计算单词并且只是你的例子是错误的,那么在你读完所有输入之前你不能输出任何东西(如果第一个单词和最后一个单词怎么办?例如,输入中的内容相同)。您需要跟踪唯一单词并计算出现次数,因此请查看 Map 接口及其各种实现。
标签: java file-io printwriter