码迷,mamicode.com
首页 > 其他好文 > 详细

统计英文文本文件出现次数最多的单词

时间:2018-10-11 23:51:00      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:初始化   统计   int()   初始   ||   main   file   文本   exception   

源代码:

package 统计英文文本文件出现次数最多的单词;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
class zimu{
String name;
int num;
zimu(){
name=null;
num=-1;
}
}
public class Tongji {
public static void main(String[] args) throws IOException {
File file = new File("yingyuwenzhang.txt");//定义一个file对象,用来初始化FileReader
FileReader reader = new FileReader(file);//定义一个fileReader对象,用来初始化BufferedReader
BufferedReader bReader = new BufferedReader(reader);//new一个BufferedReader对象,将文件内容读取到缓存
StringBuilder sb = new StringBuilder();//定义一个字符串缓存,将字符串存放缓存中
String s = "";
while ((s =bReader.readLine()) != null) {//逐行读取文件内容,不读取换行符和末尾的空格
sb.append(s);//将读取的字符串添加换行符后累加存放在缓存中
}
bReader.close();
String str = sb.toString();
findEnglishNum(str);
}
public static void findEnglishNum(String text){
Scanner scan=new Scanner(System.in);
int i=0;
String[] array = {".",",","?","!"};
for (int i1 = 0; i1 < array.length; i1++) {
text = text.replace(array[i1]," ");
}
String[] textArray = text.split(" ");
// for(int i=0;i<textArray.length;i++)
// {
// System.out.println(textArray[i]);
// }
Map<String, Integer> map = new TreeMap<String, Integer>();
for (int i1 = 0; i1 < textArray.length; i1++) {
String key = textArray[i1];
//转为小写
String key_l = key.toLowerCase();
if(!"".equals(key_l)){
Integer num = map.get(key_l);
if(num == null || num == 0){
map.put(key_l, 1);
}else if(num > 0){
map.put(key_l, num+1);
}
}
}
for(String e:map.keySet()){
// System.out.println("单词:"+e+" 次数:"+map.get(e));
i++;
}
zimu [] z=new zimu[i];
for(int m=0;m<=i-1;m++) {
z[m]=new zimu();
}
int j=0;
for(String e:map.keySet()) {
if(z[j]!=null) {
z[j].name=e;
z[j].num=map.get(e);
}
j++;
}
for(int p=0;p<=i-1;p++) {
System.out.println("单词:"+z[p].name+" 次数:"+z[p].num);
}
zimu t=new zimu();
for(int m=0;m<=i-1;m++)
{
for(int n=m;n<=i-1;n++) {
if(z[m]!=null&&(z[m].num<z[n].num)) {
t=z[m];
z[m]=z[n];
z[n]=t;
}
}
}
System.out.println("请输入想要输出前几位次数较多的单词:");
int b=scan.nextInt();
for(int m=0;m<=b-1;m++) {
if(z[m]!=null) {
System.out.println("单词:"+z[m].name+" 次数:"+z[m].num);
}
}
}
}

实验总结:

待补充。

统计英文文本文件出现次数最多的单词

标签:初始化   统计   int()   初始   ||   main   file   文本   exception   

原文地址:https://www.cnblogs.com/ruangongyouxi/p/9775444.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!