统计飘中单词出现次数
package test; import java.io.File; import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileReader; import java.io.FileWriter; import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; import java.util.Set; public class test2 { public static void main(String[] agrs)throws Exception { BufferedReader br=new BufferedReader(new FileReader("C:\\Users\\admin\\Documents\\gone.txt")); StringBuffer sb=new StringBuffer(); String text=null; while((text=br.readLine())!=null) { sb.append(text); } br.close();//关闭读入流 String str=sb.toString().toLowerCase(); String[] words=str.split("\\W+"); Map<String ,Integer>map=new HashMap<String,Integer>(); Set<String> wordSet=map.keySet(); for(int i=0;i<words.length;i++) { if(wordSet.contains(words[i])) { //如果已经有这个单词了 Integer number=map.get(words[i]); number++; map.put(words[i], number); } else map.put(words[i],1); } Iterator<String> iterator=map.keySet().iterator(); while(iterator.hasNext()) { String word=iterator.next(); System.out.println("单词:"+word+"出现次数:"+map.get(word)); } } }
首先先创建一个File对象,用作缓存输入流的构造函数的参数。将文件中的内容储存成String对象,用appened函数将不断读出的string添加到对象尾部。关闭文件
利用split函数将string对象分割成一个个单词。将其对象转化为小写。将单词和次数定义到map集合中,以单词为索引,统计次数。利用迭代器将map集合输出。
map集合的排序方式还在学习中。