Java Dictionary Searcher

Estou tentando implementar um programa que receba uma entrada do usuário, divida essa sequência em tokens e pesquise no dicionário as palavras dessa sequência. Meu objetivo para a string analisada é fazer com que cada token seja uma palavra em inglê

Por exemplo

Input:
       aman

Split Method:
      a man
      a m an
      a m a n
      am an
      am a n
      ama n

Desired Output:
      a man

Atualmente, tenho esse código que faz tudo até a parte de saída desejada:

    import java.util.Scanner;
import java.io.*;

public class Words {

    public static String[] dic = new String[80368];

    public static void split(String head, String in) {

        // head + " " + in is a segmentation 
        String segment = head + " " + in;

        // count number of dictionary words
        int count = 0;
        Scanner phraseScan = new Scanner(segment);
        while (phraseScan.hasNext()) {
            String word = phraseScan.next();
            for (int i=0; i<dic.length; i++) {
                if (word.equalsIgnoreCase(dic[i])) count++;
            }
        }

        System.out.println(segment + "\t" + count + " English words");

        // recursive calls
        for (int i=1; i<in.length(); i++) {
            split(head+" "+in.substring(0,i), in.substring(i,in.length()));
        }   
    }

    public static void main (String[] args) throws IOException {
        Scanner scan = new Scanner(System.in);
        System.out.print("Enter a string: ");
        String input = scan.next();
        System.out.println();

        Scanner filescan = new Scanner(new File("src:\\dictionary.txt"));
        int wc = 0;
        while (filescan.hasNext()) {
            dic[wc] = filescan.nextLine();
            wc++;
        }

        System.out.println(wc + " words stored");

        split("", input);

    }
}

Sei que existem maneiras melhores de armazenar o dicionário (como uma árvore de pesquisa binária ou uma tabela de hash), mas não sei como implementá-la

Estou empolgado em como implementar um método que verifique a cadeia de caracteres da divisão para ver se cada segmento era uma palavra no dicionári

Qualquer ajuda seria ótimo, obrigad

questionAnswers(3)

yourAnswerToTheQuestion