我试图找到字符串中每个单词的出现次数。
例如Sentence=" My home, is my home"
。答案是"我的" = 2; "家用" = 2; "是" = 1
这是我的代码:
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
输出:
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
答案 0 :(得分:1)
您可以使用HashMap,HashMap<String, Integer>
来执行此操作。
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());
}
输出:
is: 1
my: 2
home: 2
看看这个SO post。在那里你会看到一些非常类似于你要求回答的东西。
答案 1 :(得分:0)
您可以使用split()
拆分StringString[] s;
s = split("."); //Will split a sentence into an array
所以如果输入是me.me.me.me. S [0] =&#34; me&#34;,S [1] =&#34; me&#34;等
然后,您只需找到数组的长度,即可查看原始字符串中的字数。 所以.....
count = s.length;
System.out.println(count);
您提出的问题非常复杂,但我认为您正在尝试计算字符串中的字数。 我还不能发表评论,因为我的代表正在开始。但是,你已经有了一个可行的解决方案...这不是将解决方案发布到你自己的答案上以展示它的地方吗?