2017-02-06 3 views
1

Я хочу найти некоторые 3 буквы слова, которые начинаются с А и заканчивается Е в этом типе выражения:
EКак найти определенные слова в TRIE

Моя программа представляет собой словарь, и я использую это код:

public ArrayList<String> Search(String word){ 

    Node current = root; 
    ArrayList<String> result = new ArrayList<>(); 

    while(current != null){ 
     String st = ""; 
     for(int i = 0; i < word.length(); i++){ 
      if(current.SubNode(word.charAt(i)) != null) { 
       current = current.SubNode(word.charAt(i)); 
       st+= current; 
      } 
      if(word.charAt(i) == '?'){ 
       current = current.SubNode(word.charAt(i)); 
       st+= current; 
      } 
     } 
     if (current.prefixes == true) 
      result.add(st); 
    } 
    return result; 
} 

Но это не работает

+1

Почему вы не используете регулярное выражение? Было бы намного чище. – Thibstars

+0

Я не знаю, что мне делать ?! – S206

ответ

0

Вот пример того, как найти его с помощью Regex. Просто перебирайте свою коллекцию.

String input = "AoE"; 

    Pattern p = Pattern.compile("(A*.*E)"); 
    Matcher m = p.matcher(input); 

    while (m.find()) { 
     System.out.println("m.length() = " + m.group().length()); 
     if (m.group().length() == 3){ 
      System.out.println("Found a " + m.group() + "."); 
     } 
    } 
Смежные вопросы