分别为每个单词添加频率(Java)
我的程序没有显示任何错误消息(如运行时错误),但我基本上是在处理逻辑错误。所以问题是这个程序应该计算文件中每个单词的频率,但事实并非如此 我从这个程序得到的输出是每个单词的频率(1)。例如,我的文件包含单词“and”10次,但是这个程序显示“and”的频率是(1),而不是(1) 我真的非常感谢任何反馈 这是我的代码:分别为每个单词添加频率(Java),java,file,frequency,Java,File,Frequency,我的程序没有显示任何错误消息(如运行时错误),但我基本上是在处理逻辑错误。所以问题是这个程序应该计算文件中每个单词的频率,但事实并非如此 我从这个程序得到的输出是每个单词的频率(1)。例如,我的文件包含单词“and”10次,但是这个程序显示“and”的频率是(1),而不是(1) 我真的非常感谢任何反馈 这是我的代码: import java.util.Scanner; import java.io.*; public class FrequencyOfWords { static
import java.util.Scanner;
import java.io.*;
public class FrequencyOfWords {
static int frequency[] = new int[999];
static String words[] = new String[999];
static int count_Word = 0;
static int individual_Count = 0;
public static void main(String [] args) throws Exception {
methodForInputtingWords();
methodForPrintingOutWords();
}
public static void methodForInputtingWords() throws Exception {
File file = new File("file.txt");
Scanner input = new Scanner(file);
String x;
while (input.hasNext()) {
x = input.next();
words[count_Word] = x;
count_Word = count_Word + 1;
if (count_Word == individual_Count) {
words[count_Word] = x;
individual_Count = individual_Count + 1;
} else {
frequency[count_Word] = frequency[count_Word] + 1;
}
}
}
public static void methodForPrintingOutWords() {
for (int k = 0; k < count_Word; k++) {
System.out.printf(" %10d %5s", frequency[k], words[k]);
}
}
}
import java.util.Scanner;
导入java.io.*;
公共类词频{
静态整数频率[]=新整数[999];
静态字符串字[]=新字符串[999];
静态整数计数\u字=0;
静态整数个人计数=0;
公共静态void main(字符串[]args)引发异常{
输入单词的方法();
打印输出字()的方法;
}
InputingWords()的公共静态无效方法引发异常{
File File=新文件(“File.txt”);
扫描仪输入=新扫描仪(文件);
字符串x;
while(input.hasNext()){
x=输入。下一步();
字数[计算字数]=x;
计数字=计数字+1;
if(count\u Word==单个\u计数){
字数[计算字数]=x;
个人计数=个人计数+1;
}否则{
频率[计数字]=频率[计数字]+1;
}
}
}
打印输出字()的公共静态无效方法{
for(int k=0;k
您可以使用HashMap
来存储单词和频率,其中键
是一个单词,值
是单词的频率。现在,您将每个单词放入单词数组中的一个新字段,而不检查它是否已经在其中
一个简单的解决方案可以是前面提到的哈希表,其中单词作为键,in作为值
if(wordHashTable.containsKey(word))
{
//increase value for this key
}
else
{
// add new key with count 1
}
坦率地说,我看不出这是怎么算数的。你有没有参加过这个项目?你能详细说明你的逻辑吗?顺便说一句,构建频率图有很多解决方案,它们更容易使用,是一个很好的频率图。如果您不确定如何创建一个,只需使用一个现有的算法。ArrayList类是否执行与HashMap类相同的功能?很抱歉,我对Java.No的理解有限。ArreyList用于存储与其他对象没有关系的对象,而HashMap用于存储对象对对象关系。欠费清单就像是一个真实世界的记录清单。在一行字上。HashMap是一个字典:一个主题(键)及其解释(值)