关于Java 统计文本中单词出现的次数

我编写一个算法查找出一段文本中的单词,所欲的单词出现的次数定义一个数组b[],用于装单词出现的次数。Stringwords[]装的是我分割出来的所有单词。for(intj... 我编写一个算法查找出一段文本中的单词,所欲的单词出现的次数
定义一个数组b[ ],用于装单词出现的次数。
String words[]装的是我分割出来的所有单词。
for (int j = 0; j < words.length; j++) {
for (int i = 0; i < words.length; i++) {
if (words[j].equals(words[i])) {
b[j]++;}
}
System.out.println(worda[j] + b[j]);
}
这样做结果对,但是有一个问题就是例如。文本中的那段单词为
I am a student,student is a boys.
结果为
i1
am1
a2
student2
student2
is1
a2
boys1
可见,有一个大问题,student 出现2次 a出现2次;student 2 ,a 2 这是对的,但是它多输出了2次;如果文章中student出现100次,那输出的结果岂不是输出100多个
student 100;我就是想改进,文章中出现100个student,但输出只输出1个 student 100。。。请高手帮助啊,万分感激,虽然分不多(我没分了实在不好意思)
展开
 我来答
duzc2
推荐于2017-09-09 · TA获得超过2512个赞
知道大有可为答主
回答量:1987
采纳率:50%
帮助的人:2048万
展开全部
Map<String,Integer>
key作为单词,value作为出现的次数
遍历这个Map的Entry,输出。
就不会重复了,而且比你这个效率高。
追问
能够详细点吗?请问这个是泛型是吗?
追答
Map map = new HashMap();
for (int j = 0; j entry : map.entrySet()){
System.out.println(entry.getKey() + entry.getValue());
}

手工打进来的,可能有拼写错误,你试试算吧
百度网友12ee0fd
2012-11-26 · TA获得超过4.7万个赞
知道大有可为答主
回答量:1.1万
采纳率:66%
帮助的人:2268万
展开全部
用一个Map<String, Integer>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式