【问题标题】:How to find a word in a string in Java (keyword not included in another word)如何在Java中的字符串中查找单词(关键字不包含在另一个单词中)
【发布时间】:2022-01-06 10:42:00
【问题描述】:

我必须在Java String中搜索一个单词,但我不知道如何解决以下问题:

例如: 关键词:汽车

text:我想带猫的汽车e。

关键字出现在另一个词中,但我不希望它被检测到。我只想检测关键字是否不是另一个单词的一部分。

关键词:汽车

文本:我有一辆新车。 (正确)

我无法搜索“car”(前后有空格),因为它可能显示为“car”。在文本中(句子的结尾),所以它仍然无法检测到正确的情况

【问题讨论】:

标签: java string keyword word


【解决方案1】:

需要编译由字边界\b之间的输入word组成的正则表达式,然后创建textMatcher,并使用Matcher::find

public static boolean containsWord(String text, String word) {
    return Patern.compile("\\b" + word + "\\b").matcher(text).find();
}

【讨论】:

  • 你可以用matches(".* … .*")代替find("…")
  • 是的,再输入几个字母以获得更好的性能……
  • 这很容易忘记,但是当text 包含换行符时,text.matches(".*word.*")Pattern.compile("word").matcher(text).find() 的结果不同。通常,后者与实际意图相匹配。我应该先提到它,但即使我有时也会忘记……
猜你喜欢
  • 1970-01-01
  • 2021-01-22
  • 1970-01-01
  • 2015-12-16
  • 1970-01-01
  • 2011-07-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多