Java—提示用户输入文件的方法
我正在尝试编写一个方法,提示用户输入一个存储每个单词的文件,然后计算单词的频率 问题是我想使用一个固定大小为1000的数组来实现这个方法。我已经在类中声明了一个字符串数组-String[]words=newstring[1000];但是,我不知道如何将它集成到这个方法中,以便保存文件的每个字。任何意见将不胜感激 这就是我到目前为止所做的:Java—提示用户输入文件的方法,java,file,word,frequency,Java,File,Word,Frequency,我正在尝试编写一个方法,提示用户输入一个存储每个单词的文件,然后计算单词的频率 问题是我想使用一个固定大小为1000的数组来实现这个方法。我已经在类中声明了一个字符串数组-String[]words=newstring[1000];但是,我不知道如何将它集成到这个方法中,以便保存文件的每个字。任何意见将不胜感激 这就是我到目前为止所做的: public static void inputFile() throws Exception { java.io.File file = n
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();
}
}
您不需要将文件内容保存到对象中。 通过查看JavaDocs,您可以看到Scanner的方法支持regex 只需阅读并搜索:
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'");
数组是错误的结构。您需要一个HashMap来保存每个单词的当前计数。获取单词的当前计数,将null更改为0,然后添加1并将其放回映射中。您可以随意将其删减到1000以上。因此,我不必将数组作为此方法的参数传递?如果要计算单词的出现次数,只需更改在我的示例中搜索的单词即可。