【发布时间】:2011-10-28 12:50:50
【问题描述】:
我正在尝试查找给定字符串和关键字组合的 单词匹配 的数量,如下所示:
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
【问题讨论】:
-
看看
java.lang.String中的indexOf(...)方法。它可以满足您的一切需求。 -
text.indexOf(keyword) 返回文本中关键字的位置。我需要的是出现次数。
-
是的,并且通过从先前位置开始获取子字符串中
的索引,您可以非常轻松地计算源字符串中搜索字符串的实例数! -
嗯,好主意,但我认为这不是很高效。也许正则表达式会更快?