这个问题在这里已经有答案了:
java:string.contains匹配精确单词(7个答案)
两天前关门了。
我想编写一个方法,如果在字符串中找到关键字,则返回true,否则返回false。我知道如何做到这一点,但当关键字是像“猫”和字符串是“有一个线索毛虫”返回真的,即使猫不在字符串中。我做错什么了?
public boolean containsWord(String message, String keyWord) {
if(message.contains(keyWord)) {
return true;
}
return false;
}
3条答案
按热度按时间qni6mghb1#
你可以用
regex
来解决你的问题。你想找一只周围没有人物的猫。如果用正则表达式翻译,您将得到:在这里
\W
表示非单词字符。非单词字符由除[a-zA-z_0-9]
.所以基本上我们要找5个字符,一个非单词字符,后跟c-a-t,最后一个字符也是非单词字符。
下面是执行此操作的代码:
输出:
我希望我帮助过你。
yqlxgs2m2#
我会避免将字符串作为数组运行。
这将浪费时间,尤其是在长文本上,当你必须运行的时候。但是您可以在开头添加一个空字符,并在开头和结尾使用空字符串搜索关键字。
在一条线上。
7uzetpgm3#
有很多方法可以解决这个问题。问题是,当您使用contains()时,它会在完整字符串中查找该子文本,但您只希望查看单词。
因此,使用
space
作为分隔符。然后检查数组/列表是否包含单词。