【Java】统计文档中英语单词的个数

import  java.util. * ;
import  java.util.regex. * ;
import  java.io. * ;
public   class  UserTreeMap {

public static void main(String args[]) throws IOException{
  
  BufferedReader buf
=new BufferedReader(new FileReader("english.txt"));
  System.out.println(
"Read under this dir English.txt");
  StringBuffer sbuf
=new StringBuffer();//缓冲字符串
  String line=null;
  
while((line=buf.readLine())!=null){
  sbuf.append(line);
//追加到缓冲字符串中
  }

  buf.close();
//读取结束
  Pattern expression=Pattern.compile("[a-zA-Z]+");//定义正则表达式匹配单词
  String string1=sbuf.toString().toLowerCase();//转换成小写
  Matcher matcher=expression.matcher(string1);定义string1的匹配器
  TreeMap myTreeMap
=new TreeMap();//创建树映射 存放键/值对
  int n=0;//文章中单词总数
  Object word=null;//文章中的单词
  Object num=null;//出现的次数
  while(matcher.find()){//是否匹配单词
  word=matcher.group();//得到一个单词-树映射的键
  n++;//单词数加1
  if(myTreeMap.containsKey(word)){//如果包含该键,单词出现过
    num=myTreeMap.get(word);//得到单词出现的次数
    Integer count=(Integer)num;//强制转化
    myTreeMap.put(word,new Integer(count.intValue()+1));
  }

  
else
  
{
    myTreeMap.put(word,
new Integer(1));//否则单词第一次出现,添加到映射中
  }

  }

  System.out.println(
"统计分析如下:");
  System.out.println(
""t 文章中单词总数"+n+"");
  System.out.println("具体的信息在当前目录的result.txt文件中");
  BufferedWriter bufw
=new BufferedWriter(new FileWriter("result.txt"));
  Iterator iter
=myTreeMap.keySet().iterator();//得到树映射键集合的迭代器
  Object key=null;
  
while(iter.hasNext()){//使用迭代器遍历树映射的键
  key=iter.next();
  bufw.write((String)key
+":"+myTreeMap.get(key));//键/值写到文件中
  bufw.newLine();
  }

  bufw.write(
"english.txt中的单词总数"+n+"");
  bufw.newLine();
  bufw.write(
"english.txt中不同单词"+myTreeMap.size()+"");
  bufw.close();
}

}
 
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值