检查字典是否包含某个单词

时间:2015-08-14 00:23:27

标签: java dictionary

我提出了以下问题:假设单词被添加到基于某些数据结构的字典中。例如,添加了以下单词:

"bob", "dad", "bad"

假设我想通过实施方法检查字典中是否有某个单词:

public boolean checkWord(String word)

但是,字符'.'也代表某个字母,例如:

checkWord(".ob")

然后结果是true(因为'。'可以被b替代或代表,并且将是bob)。或者另一个例子是:

checkWord("..d") 

也会返回true(因为"dad")。

我只需要帮助检查单词是否匹配。假设数据结构为ArrayList,字典表示为myList。对于我通过的true,我的代码总是String。请smb请帮帮我?我只是想知道如果字典包含"bob"并且传递的检查字是".ob",如何返回true,那么如何省略字符'.'并检查其他字符?提前谢谢!

public boolean checkWord(String word){
   boolean result = false;
   if(myList.contains(word)){
       return true; 
   }
   else{
       for(int i = 0; i < myList.size(); i++){
          if(myList.get(i).length() == word.length()){
             for(int j = 0; j < word.length(); j++){
                 if(word.charAt(j) == myList.get(i).charAt(j)){
                    result = true;
                 }
             }
          }
       }
   }
return result;
} 

1 个答案:

答案 0 :(得分:1)

如果我理解正确,您应该可以使用正则表达式。

public boolean checkWord(String word){
    boolean result = false;
    if(myList.contains(word)){
      return true; 
    }
    else{
        word += "$";
        Pattern p = Pattern.compile(word);
        for(int i = 0; i < myList.size(); i++){
            Matcher m = p.matcher(myList.get(i));
            if(m.find()){
                result = true;
                break;
            }else{
                result = false;
            }
        }
    }
    return result;
}