打开一个文本文档,统计单词出现的次数

打开一个文本文档,统计单词出现的次数


运行后的结果: 运行的结果
在这里插入图片描述

package experiment.six;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.HashMap;
import java.util.Set;
public class FileReadWrite {
 public static void main(String[] args) throws IOException {
  HashMap<String,Integer> m=new HashMap<>();//定义一个双列集合,键用来存单词,值用来存单词个数
   BufferedReader reader=new BufferedReader(
     new FileReader("E:\\eclipse-workspace\\review\\src\\experiment\\six\\article"));
   //创建一个文件字节输出流来输出文件
   String ss=null;    //定义一个字符串,初始化null  
   while((ss=reader.readLine())!=null) {//文件一行一行的读,直到读到文件尾
    String[] str=ss.trim().split("\\s+");//
    for(int i=0;i<str.length;i++) {
     //
     String word=str[i].trim();
     /*判断Map集合中是否存在指定的键对象key
      * 如果存在,就把个数的个数加1,如果不存在,就把该值加入进去
     */
     if(m.containsKey(word)) {
      m.put(word, m.get(word)+1);
     }else {
      m.put(word,1);
     } 
    }        
   } 
   reader.close();
   Set<String> st=m.keySet();//以Set集合的形式返回Map集合中所以的键对象
   System.out.println("-------------------------------------");
   System.out.println("\t"+"Occurrences"+"\t"+"Word");
   for(String k:st) {        //foreash循环遍历
    if(!k.equals(" ")){    //判断是否读到文件尾
     char[] str=k.toCharArray(); 
     System.out.print("\t"+"\t"+m.get(k.trim()));
     System.out.print("\t");
     for(int i=0;i<str.length;i++) { 
      if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z')) {
       System.out.print(str[i]);
      }
     }
     System.out.println("");
    }
   }
   System.out.println("-------------------------------------");
 }
}
发布了29 篇原创文章 · 获赞 3 · 访问量 413

猜你喜欢

转载自blog.csdn.net/dwjdj/article/details/103452681