gpt4 book ai didi

java - StringUtils.count匹配以字符串开头的单词?

转载 作者:行者123 更新时间:2023-12-01 18:30:53 36 4
gpt4 key购买 nike

我正在使用StringUtils.countMatches来计算单词频率,有没有办法在文本中搜索以某些字符开头的单词?

示例:

searching for art in "artificial art in my apartment" will return 3! I need it to return 2 for words starting with art only.

我的解决方案是将文本中的\r和\n替换为空格,并将代码修改为:

text = text.replaceAll("(\r\n|\n)"," ").toLowerCase();
searchWord = " "+searchWord.toLowerCase();
StringUtils.countMatches(text, searchWord);

我还尝试了以下正则表达式:

patternString = "\\b(" + searchWord.toLowerCase().trim() + "([a-zA-Z]*))";
pattern = Pattern.compile(patternString);
matcher = pattern.matcher(text.toLowerCase());

问题:-我的第一个解决方案有意义还是有更好的方法来做到这一点?

-我的第二个解决方案更快吗?因为我正在处理大型文本文件和相当数量的搜索词。

谢谢

最佳答案

text = text.replaceAll("(\r\n|\n)"," ").toLowerCase();
searchWord = " "+searchWord.toLowerCase();
String[] words = text.split(" ");
int count = 0;
for(String word : words)
if(searchWord.length() < word.length())
if(word.substring(word.length).equals(searchWord))
count++;

循环提供相同的效果。

关于java - StringUtils.count匹配以字符串开头的单词?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24288809/

36 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com