java—从文本文件创建一致性

axkjgtzd  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(226)

我有一个文本文件,需要建立一个和谐的出来。我相信我需要一个方法来更新我的行号和单词计数在我的wordcount类,但我有麻烦怎么做。我知道这个方法应该是void类型,因为它只是更新,不返回任何值。但我一直在想该写什么。我已经在tester类中对我认为这个方法应该去哪里做了评论。下面提供了我的tester、circularlist和wordcount类。谢谢你的帮助。

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Tester
{
    public static final int WordsPerLine = 10;

    public static void main() throws FileNotFoundException
    {
        //build then output hash table
        HashTable ht = new HashTable();
        System.out.println(ht.toString());

        String word; //read from input file
        WordCount wordToFind;  //search for this in the bst
        WordCount wordInTree;  //found in the bst

        //create generic BST, of WordCount here
        BSTree<WordCount> t = new BSTree<WordCount>();

        //want to read word at a time from input file
        Scanner wordsIn = new Scanner(new File("Hamlet.txt"));
        wordsIn.useDelimiter("[^A-Za-z']+");

        int wordCount = 0;
        int lineNum = 1;
        System.out.printf("%3d:  ", lineNum);
        while (wordsIn.hasNext()) {
            word = wordsIn.next();
            ++wordCount;
            System.out.print(word + " ");
            word = word.toLowerCase();

            if(t.find(new WordCount(word)) != null){
                wordToFind=  new WordCount(word);
                wordInTree= t.find(wordToFind); 
                //I need to have a method here that update word count and line number

            }

            if (wordCount % WordsPerLine == 0) {
                ++lineNum;
                System.out.printf("\n%3d:  ", lineNum);
            }
        }
        //EOF
        System.out.println();

        //print bst in alpha order
        System.out.println(t.toString());
    }
}

public class WordCount implements Comparable<WordCount>
{
    protected String word;
    protected int count;
    protected CircularList lineNums;

    //required for class to compile
    public int compareTo(WordCount other)
    {
        return word.compareTo(other.word);
    }

    {
        word = "";
        count = 0;
        lineNums= new CircularList();
    }

    public WordCount(String w)
    {
        word = w;
        count = 0;
        lineNums= new CircularList();
    }

    public String toString()
    {
        return String.format("%-12s %3d %3d", word, count, lineNums);
    }
}

public class CircularList
{
    private Item list;

    public CircularList()
    {
        list = null;
    }

    public Boolean isEmpty()
    {
        return list == null;
    }

    public void append(int x)
    {
        Item r = new Item(x);
        if (isEmpty()) {
            r.next = r;
        }
        else {
            r.next = list.next;
            list.next = r;
        }
        list = r;
    }

    public int nextLine(int x)
    {
        Item r= new Item(x);
        if (!isEmpty()) {
            r = list.next;
            while (r != list) {
                r = r.next;
            }
            //append last item
        }
        return r.info;
    }

    public String toString()
    {
        StringBuilder s = new StringBuilder("");

        if (!isEmpty()) {
            Item r = list.next;
            while (r != list) {
                s.append(r.info + ", ");
                r = r.next;
            }
            //append last item
            s.append(r.info);
        }
        return s.toString();
    }
}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题