Java 读取包含单词的文件以计算其频率

Java 读取包含单词的文件以计算其频率,java,file-io,frequency,Java,File Io,Frequency,我正在编写一个程序,该程序将读取一个文件以查找单词的频率。我必须创建一个void方法,该方法将读取唯一单词的文件来计算它 我对Java完全陌生。我一直在阅读我的教科书和其他在线资源,以了解为特定目的阅读文件的概念/过程,但我仍在努力实现其逻辑 我想知道我遗漏了什么/或做错了什么,这会阻止我阅读文件来计算单词的频率 这是我的代码:[这是我代码的一部分。其他方法(如排序频率和获取输出的方法)也在同一类中-此处不包括。] import java.io.*; import java.util.*;

我正在编写一个程序,该程序将读取一个文件以查找单词的频率。我必须创建一个void方法,该方法将读取唯一单词的文件来计算它

我对Java完全陌生。我一直在阅读我的教科书和其他在线资源,以了解为特定目的阅读文件的概念/过程,但我仍在努力实现其逻辑

我想知道我遗漏了什么/或做错了什么,这会阻止我阅读文件来计算单词的频率

这是我的代码:[这是我代码的一部分。其他方法(如排序频率和获取输出的方法)也在同一类中-此处不包括。]

import java.io.*;
import java.util.*;


public class CountingFrequencyOfWords
{
       int frequency  [] = new int [999];
       String words []  = new String [999];


       int uniqueCount = 0;
       int count_Word= 0;


       public void methodForInput() throws Exception
       {

             File file = new File("file.txt");
             Scanner input = new Scanner(file);

             String x;
             int i = 0;

             while(input.hasNext())
             {

                   x = input.next();
                   count_Word[i] = x;
                   i =  i + 1;


                   if (i == uniqueCount)
                   {

                         uniqueCount[i] = x;
                         uniqueCount = uniqueCount + 1;
                   }

                   frequency[i] = frequency[i] + 1;

             }


        }

}

我现在不能告诉你count\u Word和uniqueCount不是数组,所以count\u Word[I]和uniqueCount[I]会把你搞砸的。x是一个字符串,因此将其添加到int变量中会引发异常。除此之外,我认为您可以读取文件。

非常有必要为
methodForInput()
函数使用try&catch块,因为在
methodForInput()
函数的声明中,您抛出了一个异常
public void methodForInput()抛出异常
…因此,如果在程序执行过程中抛出异常,您必须在调用函数的位置捕获该异常……下面是代码块:

try{   //try it for exception
    methodForInput();
}catch(Exception e){
    System.out.println(e); //print the exception if it is thrown during execution of program
}

如果没有抛出异常,请不要担心…如果没有异常发生,则代码可以毫无问题地运行如果发生异常,则它将通过
System.out.println(e)显示
……我想它可能会帮助您……&别忘了将
methodForInput()
方法设置为
static
……祝您好运……

Charlotte,您有什么具体问题吗?你到底想让人们发布什么来回应这个问题?@DavidWallace,我想知道如何让这个方法读取一个文件,以便计算现有文件中的字数。好的,但你说你已经编写了一些方法,但你没有向我们展示。我不知道你少了哪一点。在任何情况下,我建议您创建一个
HashMap
,由您找到的单词键入,并在每次看到单词时递增
整数。这就是你不知道怎么做的部分吗?@DavidWallace,是的……但是我必须为这个特定的程序使用两个数组。@夏洛特.P创建一个字符串数组和一个整数数组。字符串数组保存您遇到的所有唯一单词。整数数组保存每个单词的频率。对于文件中的每个单词,在字符串数组中查找该单词,并在整数数组中增加相应的索引。如果单词不存在,请将其添加到字符串数组中。