该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
以下为代码:
import java.io.*;
import java.util.*;
public class WordStatistic {
VectorallWord,noSameWord;
File file = new File("english.txt");
Scanner sc =null;
String regex;
WordStatistic(){
allWord=new Vector();
noSameWord =new Vector();
regex="[\\s\\d\\p(Punct)]+";
try{sc=new Scanner(file);
sc.useDelimiter(regex);
}
catch(IOException exp) {
System.out.println(exp.toString());
}
}
public void setFileName(String name) {
file = new File(name);
try{ sc = new Scanner(file);
sc.useDelimiter(regex);
}
catch(IOException exp){
System.out.println(exp.toString());
}
}
public void wordstatistic(){
try{ while(sc.hasNext()){
String word=sc.next();
allWord.add(word);
if(!noSameWord.contains(word))
noSameWord.add(word);
}
}
catch(Exception e) {}
}
public Vector getAllWord(){
return allWord;
}
public VectorgetNoSameword(){
return noSameWord;
}
}
----------------------
import java.util.*;
public class OutputWordMess {
public static void main (String args[]) {
Vector allWord,noSameWord;
WordStatistic statistic=new WordStatistic();
statistic.setFileName("hello.txt");
statistic.wordstatistic();//statistic调用wordStatistic()方法
allWord=statistic.getAllWord();
noSameWord=statistic.getNoSameword();
System.out.println("共有"+allWord.size()+"个英文单词");
System.out.println("有"+noSameWord.size()+"个互不相同英文单词");
System.out.println("按出现频率排列:");
int count[]=new int[noSameWord.size()];
for(int i=0;i
String s1 =noSameWord.elementAt(i);
for(int j=0;j
String s2=allWord.elementAt(j);
if(s1.equals(s2))
count[i]++;
}
}
for(int m=0;m
for(int n=m+1;n
if(count[n]>count[m]){
String temp=noSameWord.elementAt(m);
noSameWord.setElementAt(noSameWord.elementAt(n),m);
noSameWord.setElementAt(temp,n);
int t=count[m];
count[m]=count[n];
count[n]=t;
}
}
}
for(int m=0;m
double frequency=(1.0*count[m])/allWord.size();
System.out.printf("8s:8-7.3f",noSameWord.elementAt(m),frequency);
}
}
}