我需要计算给定文档中每个单词的出现频率。出现频率是在a中找到单词的次数 文献。我的程序将文件文本作为输入
计算字频率的基本功能将使用链表实现。列表中的每个节点都包含一个字,它的频率和指向下一个节点的指针。该 基本算法如下:
如果在列表中找不到该单词 将此单词添加到列表中 将其频率设置为1 其他 将单词的频率增加1 //因为这个单词已经存在于列表中
这是我的班级:Word
public class Word {
private String word ;
private int frequency;
public Word() {
}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public int getFrequency() {
return frequency;
}
public void setFrequency(int frequency) {
this.frequency = frequency;
}
}
这是Documentword.class
P
ublic class DocumentWords {
private LinkedList<Word> list = new LinkedList<>();
private Word word = new Word();
String test = " ";
Boolean flag = false ;
int count=0;
int c ;
File document = new File("E:\\Jooo\\Project 2 (All Files)\\Project 2 (All Files)\\aa.txt");
Scanner sc;
public DocumentWords() {
try {
this.sc = new Scanner(document);
} catch (FileNotFoundException ex) {
ex.printStackTrace();
}
while (sc.hasNext()) {
test = sc.next();
// System.out.println(test);
if (list.isEmpty()) {
word.setWord(test);
word.setFrequency(1);
list.add(word);
}
else {
System.out.println(list.size());
while(count!=list.size()){
if ((list.get(count).getWord()).equals(test)) {
flag = true;
c=count;
}
count++;
}
if(flag){
list.get(c).setFrequency((list.get(c).getFrequency())+1);
}
else {
word.setWord(test);
word.setFrequency(1);
list.add(word);
}
}
}
System.out.println("Word : "+ list.get(5).getWord()+"---Freq : "+list.get(5).getFrequency());
}
}
并且此代码无法正常运行