我有必须找到编号的要求。特定单词出现在文件中的次数。
例如。
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");