Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java—提示用户输入文件的方法_Java_File_Word_Frequency - Fatal编程技术网

Java—提示用户输入文件的方法

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

我正在尝试编写一个方法,提示用户输入一个存储每个单词的文件,然后计算单词的频率

问题是我想使用一个固定大小为1000的数组来实现这个方法。我已经在类中声明了一个字符串数组-String[]words=newstring[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();
        }


}

您不需要将文件内容保存到对象中。 通过查看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以上。

因此,我不必将数组作为此方法的参数传递?如果要计算单词的出现次数,只需更改在我的示例中搜索的单词即可。