程序用于统计一个文本出现的单词次数,然后按单词的字母顺序显示这些单词及它们出现的次数,假定单词是不区分大小写的。
package test;
import java.util.*;
public class project1 {
public static void main(String []args) {
String text="Good morning.Have a good class."+"Have a good visit.Have fun!";
Map<String,Integer> map=new TreeMap<>();
String[] words=text.split("[ \n\t\r.,;:!?(){}]");
for(int i=0;i<words.length;i++) {
String key=words[i].toLowerCase();
if(key.length()>0) {
if(!map.containsKey(key)) {
map.put(key, 1);
}else
{
int value=map.get(key);
value++;
map.put(key, value);
}
}
}
Set<Map.Entry<String, Integer>> entrySet=map.entrySet();
for(Map.Entry<String, Integer> entry:entrySet)
System.out.println(entry.getKey()+"\t"+entry.getValue());
}
}
运行结果:
a 2
class 1
fun 1
good 3
have 3
morning 1
visit 1
对于每个单词来说,都要判断映射表中是否已经存在这样的一个键,如果已经存在,将该单词(键)的值加1,如果不存在这样的一个单词,则把该单词作为键,1为值构成一个条目存进该映射表中。程序使用String类的split方法从文本中提取出单词。