如何使用正则表达式计算Java中每个单词出现在字符串中的次数?
最佳答案
我认为正则表达式不能完全解决您的问题。
你想要
将字符串分割成单词,正则表达式可以为单词的一个非常简单的定义做到这一点,“字符串的各个部分由空格或标点符号分隔”,即使你只是坚持,这也不是一个很好的定义转为英文文本
计算从步骤 1 得出的每个单词出现的次数。为此,您必须存储某种映射,而正则表达式既不存储也不计数。
一个可行的方法可能是
- 将输入字符串(通过正则表达式或其他方式)拆分为单词字符串数组
- 迭代数组,并构建一个 Map 来记录每个单词的数量
- 迭代 map 以输出单词列表和出现次数。
如果您的输入仅限于英语,您仍然需要考虑您希望算法在遇到诸如“they're<->theyareetc”和复合词之类的情况时如何表现。将其他语言添加到混合中以解决其他类型的头痛问题(同一单词的不同书写方式、单词分成几部分、根据单词在句子中出现的位置而产生的书写差异等)
关于java - 数数没有。在java中使用正则表达式的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3583435/