我提出了以下问题:假设单词被添加到基于某些数据结构的字典中。例如,添加了以下单词:
"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;
}
答案 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;
}