设计统计英文字母出现频率的感想

    本次实验给我最大的感想就是,当看到这道题的时候一头雾水,不知道该如何去写,但是慢慢的静下心来仔细捋一捋思路,也不是很难。

    首先是写导入文件的代码,一开始并不太会,就上网搜了搜文件导入的方法,看了大约30分钟也了解了大概,然后就照猫画虎的去自己写写,写出来之后还挺高兴的。代码是

File file=new File("D:\\eclipse\\tongji\\src\\English.txt");
@SuppressWarnings("resource")
FileReader reader=new FileReader(file);

@SuppressWarnings("resource")
BufferedReader br1=new BufferedReader(new FileReader("D:\\eclipse\\tongji\\src\\English.txt"));

   接下来就是写把记事本里面的单词在代码中怎么去找出现了多少次,第一步是定义了俩个变量,一个是不同单词的个数,还有一个是单词的总数。String[] a=txt.split("[^a-zA-Z]+"); //利用正则表达式将字符串划分为单词字符串数组利用这个来表示记事本里面的单词。

  总结:总体来说这个代码让我学会了文件的导入,这是最大的收获,虽然最终结果不怎么样,能运行但其中还是有差错的。

代码如下:

package tongji;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
public class zimu {
public static void main(String[] args) throws Exception
{
File file=new File("D:\\eclipse\\tongji\\src\\English.txt");
@SuppressWarnings("resource")
FileReader reader=new FileReader(file);
int len=(int)file.length();
char[] chars=new char[len];
reader.read(chars);
String txt=String.valueOf(chars);
String[] a=txt.split("[^a-zA-Z]+"); //利用正则表达式将字符串划分为单词字符串数组
int n=a.length;
int nind=0,wind=0;
Object[][] b=new Object[n][2];
for(;wind<n;wind++){
int k=0; //用k标记单词是否已经出现,单词已经出现,在已存数组中匹配,若匹配则相应单词数目加1
for(int i=0;i<nind;i++){
if(((String) b[i][0]).equalsIgnoreCase(a[wind])){
b[i][1]=(int)b[i][1]+1;
k=1;
break;
}
}
//单词未出现则在记录数组末尾记录此单词
if(k==0){
b[nind][0]=a[wind];
b[nind][1]=1;
nind++;
}
}
@SuppressWarnings("resource")
BufferedReader br1=new BufferedReader(new FileReader("D:\\eclipse\\tongji\\src\\English.txt"));
String str=br1.readLine();
String[] arg=str.split("[^a-zA-Z]+"); //利用正则表达式将字符串划分为单词字符串数组
int m=arg.length;
//判断文章中词语是否为虚词,如果为虚词则在比较频率时不计较在内
for(int i=0;i<nind;i++){
for(int j=0;j<m;j++ ){
if(((String) b[i][0]).equalsIgnoreCase(arg[j])){
b[i][1]=0;
}
}
}
for(int i=0;i<10;i++){
int max=0;
for(int j=0;j<nind;j++){
if((int)b[j][1]>(int)b[max][1]){
max=j;
}
}
System.out.println(b[max][0]+"出现次数为:"+b[max][1]);
b[max][1]=0;
}
}
}

猜你喜欢

转载自www.cnblogs.com/lishengming00/p/9775459.html
今日推荐