关于java:如何计算字符串中每个单词的数量

How to count number or each word in string

我试图找到字符串中每个单词的出现次数。

例如Sentence=" My home, is my home"。 答案是"我的"= 2;"家"= 2;"是"= 1

这是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
int count;
count = 0;
String text[] = new String[100];
String Temp[] = new String[100];
text = Text.getText().split("\\W");
Temp = Text.getText().split("\\W");
for (int j = 0;  j < text.length; j++) {
    for (int i = 0; i < text.length; i++) {

        if (text[j].equals(Temp[i])) {
            count += 1;
            System.out.println(text[i] +"-" + count);
        }
    }
}

输入:me.me.me.me
输出:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
me-1
me-2
me-3
me-4
me-5
me-6
me-7
me-8
me-9
me-10
me-11
me-12
me-13
me-14
me-15
me-16


您可以使用HashMap HashMap执行此操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
HashMap<String, Integer> map = new HashMap<>();
String sentence ="My home, is my home".toLowerCase();

for(String word : sentence.split("\\W")) {
    if(word.isEmpty()) {
        continue;
    }
    if(map.containsKey(word)) {
        map.put(word, map.get(word)+1);
    }
    else {
        map.put(word, 1);
    }
}

for(Map.Entry<String, Integer> entry : map.entrySet()) {
    System.out.println(entry.getKey() +":" + entry.getValue());
}

输出:

1
2
3
is: 1
my: 2
home: 2

看看这篇SO帖子。 在那里你会看到一些非常类似于你要求回答的东西。


你可以使用split()拆分String

1
2
String[] s;
s = split("."); //Will split a sentence into an array

所以如果输入是me.me.me.me. S [0] ="我",S [1] ="我"等。

然后你只需找到数组的长度,看看原始字符串中有多少个单词。
所以.....

1
2
count = s.length;
System.out.println(count);

你问的问题非常复杂,但我假设你试图"计算一个字符串中的单词数。
我还不能发表评论,因为我的代表正在开始。 但是,您已经有了一个可行的解决方案...这不是将解决方案发布到您自己的答案中以展示它的地方吗?