思路:先建立两个文本,利用字符输入和字符输出进行文件的读取和导入,中间利用循环进行单词的检验数目,最后输出。
感想:利用图书馆的书进行了文件导入和导出的代码编写,中间的细节在网上查询了很多知识与点。感觉这次真的学到很多。
package j;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Iterator;
import java.util.TreeMap;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class lolo{
public static void main(String[] args) throws IOException {
String addr="C:/jhl/lol.txt";
BufferedReader bufr = new BufferedReader(new FileReader(addr));
StringBuffer sbuf = new StringBuffer();
String line = null;
while ((line = bufr.readLine()) != null) {
sbuf.append(line);
}
bufr.close();
Pattern expression = Pattern.compile("[a-zA-Z]+");
String str1 = sbuf.toString().toLowerCase();
Matcher matcher = expression.matcher(str1);
TreeMap myTreeMap = new TreeMap();
int n = 0;
Object word = null;
Object num = null;
while (matcher.find()) {
word = matcher.group();
n++;
if (myTreeMap.containsKey(word)) {
num = myTreeMap.get(word);
Integer count = (Integer) num;
myTreeMap.put(word, count.intValue() + 1);
} else {
myTreeMap.put(word, new Integer(1));
}
}
System.out.println("文章内容如下:");
System.out.println(str1);
System.out.println("统计分析如下:");
System.out.println("文章中单词总数:" + n+"个");
System.out.println("具体的信息在当前目录的lwl.txt文件中");
BufferedWriter bufw=new BufferedWriter(new FileWriter("C:/jhl/lwl.txt"));
Iterator iter=myTreeMap.keySet().iterator();
Object key=null;
bufw.write("文件来自:"+addr+"内容如下:");
bufw.write(sbuf.toString());
bufw.newLine();
while(iter.hasNext()){
key=iter.next();
System.out.println(key+":"+myTreeMap.get(key));
bufw.write((String)key+":"+myTreeMap.get(key));
bufw.newLine();
}
bufw.write("统计分析如下:");
bufw.write("文章中单词总数:" + n+"个");
bufw.newLine();
bufw.write("文章中不同单词总数:" + myTreeMap.size()+"个");
bufw.close();
}}