Java Dictionary Searcher

前端 未结 3 1802

I am trying to implement a program that will take a users input, split that string into tokens, and then search a dictionary for the words in that string. My goal for the pa

3条回答
  •  轮回少年
    2020-12-09 00:33

    If my answer seems silly, it's because you're really close and I'm not sure where you're stuck.

    The simplest way given your code above would be to simply add a counter for the number of words and compare that to the number of matched words

        int count = 0; int total = 0;
        Scanner phraseScan = new Scanner(segment);
        while (phraseScan.hasNext()) {
            total++
            String word = phraseScan.next();
            for (int i=0; i

    Implementing this as a hash-table might be better (it's faster, for sure), and it'd be really easy.

    HashSet dict = new HashSet()
    dict.add("foo")// add your data
    
    
    int count = 0; int total = 0;
    Scanner phraseScan = new Scanner(segment);
    while (phraseScan.hasNext()) {
        total++
        String word = phraseScan.next();
        if(dict.contains(word)) count++;
    }
    

    There are other, better ways to do this. One is a trie (http://en.wikipedia.org/wiki/Trie) which is a bit slower for lookup but stores data more efficiently. If you have a large dictionary, you might not be able ot fit it in memory, so you could use a database or key-value store like a BDB (http://en.wikipedia.org/wiki/Berkeley_DB)

提交回复
热议问题