我的代码错误

时间:2017-10-14 19:06:27

标签: java data-structures linked-list

我需要计算给定文档中每个单词的出现频率。出现频率是在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());



    }

}

并且此代码无法正常运行

0 个答案:

没有答案