我有必须找到编号的要求。特定单词出现在文件中的次数。
例如。

String str = "Hi hello how are you. hell and heaven. hell, gjh, hello,sdnc ";

现在,在此字符串中,我要数一数。经常出现“ hell ”一词。计数应包括“hell”,“hell”,所有这些词,但不包括“hello”。
因此,根据给定的字符串,我希望计数为2。

我使用以下方法

第一:
int match = StringUtils.countMatches(str, "hell");

StringUtils属于org.apache.commons.lang3库

第二名:
int count = 0;
Pattern p = Pattern.compile("hell");
                Matcher m = p.matcher(str);
                while (m.find()) {
                    count++;
                }

第三名
int count =0;
String[] s = str.split(" ");
for(String word: s)
if(word.equals("hell")
count++;

第一种方法给出4作为答案,第三种方法给出1作为答案。

无论如何,请提出建议,我可以得到2作为答案并满足我的要求。

最佳答案

您应该在正则表达式中使用单词边界匹配器:

Pattern.compile("\\bhell\\b");

07-27 14:02