我需要找到字符串上重复的单词,然后计算它们重复的次数。基本上,如果输入字符串是这样的:
String s = "House, House, House, Dog, Dog, Dog, Dog";
我需要创建一个不重复的新字符串列表,并将每个单词的重复次数保存在其他地方,如下所示:
新字符串:“房子,狗”
新整数数组:[3, 4]
有没有办法用 Java 轻松地做到这一点?我已经设法使用 s.split() 分隔字符串,但是如何计算重复次数并消除新字符串上的重复次数?谢谢!
你已经完成了艰苦的工作。现在你可以使用Map
计算出现次数:
Map<String, Integer> occurrences = new HashMap<String, Integer>();
for ( String word : splitWords ) {
Integer oldCount = occurrences.get(word);
if ( oldCount == null ) {
oldCount = 0;
}
occurrences.put(word, oldCount + 1);
}
Using map.get(word)
会告诉你某个词出现过很多次。您可以通过迭代构建一个新列表map.keySet()
:
for ( String word : occurrences.keySet() ) {
//do something with word
}
请注意您得到的内容的顺序keySet
是任意的。如果您需要根据单词首次出现在输入字符串中的时间对其进行排序,您应该使用LinkedHashMap
反而。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)