Java 统计英文单词

package second;
import java.util.*;
public class OutputWordMess {
	public static void main(String[] args) {
		Vector<String> allWord,noSameWord;
		WordStatistic statistic=new WordStatistic();
		statistic.setFileName("hello.txt");
		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<noSameWord.size();i++){
			String s1=noSameWord.elementAt(i);
			for(int j=0;j<allWord.size();j++){
				String s2=allWord.elementAt(j);
				if(s1.equals(s2))
					count[i]++;
			}
		}
		for(int m=0;m<noSameWord.size();m++){
			for(int n=m+1;n<noSameWord.size();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<noSameWord.size();m++){
			double frequency=(1.0*count[m])/allWord.size();
			System.out.printf("%s:%-7.3f", noSameWord.elementAt(m),frequency);
		}
	}
}


import java.io.*;
import java.util.*;
public class WordStatistic {
		Vector<String> allWord,noSameWord;
		File file=new File("english.txt");
		Scanner sc=null;
		String regex;
	WordStatistic (){
			allWord=new Vector<String>();
			noSameWord=new Vector<String>();
			regex="[\\s\\d\\p{Punct}]+";//正则表达式
			try{
				sc=new Scanner(file);
				sc.useDelimiter(regex);
			}
			catch(IOException exp){
				System.out.println(exp.toString());
			}
		}
		void setFileName(String name){
			file=new File(name);
			try{
				sc=new Scanner(file);
				sc.useDelimiter(regex);
			}
			catch(IOException exp){
				System.out.println(exp.toString());
			}
	}

	void WordStatistic() {
		// TODO Auto-generated method stub
		try{
			while(sc.hasNext()){
				String word=sc.next();
				allWord.add(word);
				if(!noSameWord.contains(word))
					noSameWord.add(word);
			}
		}
		catch(Exception e){}
	}
	public Vector<String>getAllWord(){
	return allWord;
	}
	public Vector<String>getNoSameWord(){
		return noSameWord;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值