词频统计需求:
1.要求统计出一个文件中的所有英文词组,以非英文字母为分隔符(这里以空格为例)。
2.要求统计结果在控制台输出,并将统计的结果存入mysql数据库和redis数据库中。
3.要求以Map键值对的方式进行存储,不区分大小写(可以先将内容全部转为大写,或者全部转为小写实现不区分大小写)
4.以字典的形式进行排序
词频统计:
package wordcount;
import redis.clients.jedis.Jedis;
import util.JDBCUnit;
import util.JedisPoolUtil;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
public class WordCount {
public void displayWordCount(String fileName) {
//以字符流的形式统计
try {
//读取文件
FileReader fileReader = new FileReader(fileName);
//使用流的方式读取内容
BufferedReader reader = new BufferedReader(fileReader);
//使用TreeMap,它会自动将结果按照字典的顺序排序
TreeMap<String, Integer> tm = new TreeMap<String, Integer>();
String readLine = null;
while((readLine = reader.readLine()) != null){
//将字母排序为小写
readLine = readLine.toLowerCase();
//过滤出只含有字母的字段
String[] str = readLine.split("[\\s]+");
//过滤掉所有的空格,“+”