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

时间:2014-05-07 10:55:36

标签: java file word frequency

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

问题是我想为这个方法使用固定大小为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();
        }


}

2 个答案:

答案 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以上。