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集合的排序方式还在学习中。