关于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。。。请高手帮助啊,万分感激,虽然分不多(我没分了实在不好意思) 展开
定义一个数组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。。。请高手帮助啊,万分感激,虽然分不多(我没分了实在不好意思) 展开
2个回答
展开全部
Map<String,Integer>
key作为单词,value作为出现的次数
遍历这个Map的Entry,输出。
就不会重复了,而且比你这个效率高。
key作为单词,value作为出现的次数
遍历这个Map的Entry,输出。
就不会重复了,而且比你这个效率高。
追问
能够详细点吗?请问这个是泛型是吗?
追答
Map map = new HashMap();
for (int j = 0; j entry : map.entrySet()){
System.out.println(entry.getKey() + entry.getValue());
}
手工打进来的,可能有拼写错误,你试试算吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询