我正在尝试编写一种方法,提示用户输入存储每个单词的文件,然后计算单词的频率。
问题是我想为这个方法使用固定大小为1000的数组。我已经声明了一个字符串数组 - String [] words = new String [1000] - 在类中;但是,我不知道如何将它集成到此方法以保存文件的每个单词。任何评论将不胜感激!
这是我到目前为止所做的:
public static void inputFile() throws Exception
{
java.io.File file = new java.io.File("123.txt");
try
{
Scanner input = new Scanner(file);
while (input.hasNextLine())
{
String list = input.next();
System.out.println(list);
}
input.close();
}
catch (Exception e)
{
e.printStackTrace();
}
}
答案 0 :(得分:1)
您无需将文件内容保存到Object中。 通过查看JavaDocs,您可以看到Scanner的方法支持正则表达式。
只需阅读并搜索:
File file = new File("file.txt");
Scanner scanner = null;
try
{
scanner = new Scanner(file);
}
catch (FileNotFoundException e){}
int i = 0;
while(scanner.hasNext("word"))
{
scanner.next("word");
i++;
}
System.out.println(i +" occurances of the word 'word'");
答案 1 :(得分:0)
数组是错误的结构。你想要一个HashMap,它将保存每个单词的当前计数。获取单词的当前计数,将null更改为0,然后添加1并将其放回地图中。您可以根据需要将其修剪到1000以上。