我正在尝试查找给定字符串和关键字组合的单词匹配数,如下所示:
public int matches(String keyword, String text){
// ...
}
例:
给出以下调用:
System.out.println(matches("t", "Today is really great, isn't that GREAT?"));
System.out.println(matches("great", "Today is really great, isn't that GREAT?"));
结果应为:
0
2
到目前为止,我发现了这一点:Find a complete word in a string java
仅当给定关键字存在但不出现多少时才返回。此外,我不确定是否忽略大小写(这对我很重要)。
请记住,应该忽略子字符串!我只想找到完整的单词。
更新
我忘了提到我也希望通过空格分隔的关键字匹配。
例如。
matches("today is", "Today is really great, isn't that GREAT?")
应该返回1
最佳答案
使用带有单词边界的正则表达式。到目前为止,这是最简单的选择。
int matches = 0;
Matcher matcher = Pattern.compile("\\bgreat\\b", Pattern.CASE_INSENSITIVE).matcher(text);
while (matcher.find()) matches++;
您的里程可能会因某些外语而有所不同。