如何对文本中出现词汇次数进行统计(求JAVA源代码)
例如文件名为11.TXT,文件内容为:死亡人数升报道说死亡死亡人数继续上升说发生奎市地震人受伤还有人埋有继续上升造成房屋倒塌输出结果为:死亡3。。。出现次数多的先输出(使...
例如文件名为11.TXT,文件内容为:
死亡
人数
升
报道
说
死亡
死亡
人数
继续
上升
说
发生
奎
市
地震
人
受伤
还有
人
埋
有
继续
上升
造成
房屋
倒塌
输出结果为:
死亡 3
。。。出现次数多的先输出(使用普遍文件JAVA代码)。 展开
死亡
人数
升
报道
说
死亡
死亡
人数
继续
上升
说
发生
奎
市
地震
人
受伤
还有
人
埋
有
继续
上升
造成
房屋
倒塌
输出结果为:
死亡 3
。。。出现次数多的先输出(使用普遍文件JAVA代码)。 展开
1个回答
展开全部
代码如下。。。。我测试过了。。。。应该能满足你的需求。。。你看看。。。希望能帮到你。。。
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class WordStatics {
public static void main(String args[]) throws Exception{
Map<String,Integer> result = new HashMap<String,Integer>();
String filePath = "D:\\11.txt";
BufferedReader in = new BufferedReader(
new FileReader(filePath));
String line;
while((line=in.readLine())!=null){
if(result.get(line.trim())!=null)
result.put(line, result.get(line)+1);
else
result.put(line, 1);
}
//按照出现次数进行排序
String[] words = new String[result.size()];
Integer[] cishu = new Integer[result.size()];
String[] keys = result.keySet().toArray(new String[0]);
words[0] = keys[0];
cishu[0] = result.get(words[0]);
//使用插入排序法
for(int i = 1; i<keys.length;i++){
String key = keys[i];
int j;
for(j = i;j>0;j--){
if(cishu[j-1]<result.get(key)){
cishu[j] = cishu[j-1];
words[j] = words[j-1];
}else
break;
}
cishu[j] = result.get(key);
words[j] = key;
}
//输出排序结果
for(int i = 0;i<words.length;i++)
System.out.println(words[i]+" "+cishu[i]);
}
}
输出结果:
死亡 3
继续 2
上升 2
人数 2
人 2
说 2
倒塌 1
造成 1
报道 1
发生 1
奎 1
受伤 1
升 1
有 1
房屋 1
还有 1
地震 1
市 1
埋 1
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Map;
public class WordStatics {
public static void main(String args[]) throws Exception{
Map<String,Integer> result = new HashMap<String,Integer>();
String filePath = "D:\\11.txt";
BufferedReader in = new BufferedReader(
new FileReader(filePath));
String line;
while((line=in.readLine())!=null){
if(result.get(line.trim())!=null)
result.put(line, result.get(line)+1);
else
result.put(line, 1);
}
//按照出现次数进行排序
String[] words = new String[result.size()];
Integer[] cishu = new Integer[result.size()];
String[] keys = result.keySet().toArray(new String[0]);
words[0] = keys[0];
cishu[0] = result.get(words[0]);
//使用插入排序法
for(int i = 1; i<keys.length;i++){
String key = keys[i];
int j;
for(j = i;j>0;j--){
if(cishu[j-1]<result.get(key)){
cishu[j] = cishu[j-1];
words[j] = words[j-1];
}else
break;
}
cishu[j] = result.get(key);
words[j] = key;
}
//输出排序结果
for(int i = 0;i<words.length;i++)
System.out.println(words[i]+" "+cishu[i]);
}
}
输出结果:
死亡 3
继续 2
上升 2
人数 2
人 2
说 2
倒塌 1
造成 1
报道 1
发生 1
奎 1
受伤 1
升 1
有 1
房屋 1
还有 1
地震 1
市 1
埋 1
追问
谢谢你啊!我想问问能不能对整个文件夹里的所有TXT文本进行这个方法啊,比如文件夹D:\地震里面有很多TXT文件!对文件夹里所有的词汇进行一个统计然后输出。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询