package Word;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.text.DecimalFormat;
public class WordFind {
public static void main(String[] args) {
WordFind2[] word=new WordFind2[100];
for(int i=0;i<100;i++) {
word[i]=new WordFind2();
}
word[0].input(word);
word[0].showAsc(word);
}
}
class WordFind2{
private char word;
private int num;
private static double time=0;
public WordFind2() {
word='0';
num=1;
}
public static double getTime() {
return time;
}
public char getWord() {
return word;
}
public void setWord(char word) {
this.word = word;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public void addnum() {
num++;
}
public void input(WordFind2[] word) {
String str;
try {
BufferedReader in=new BufferedReader(new FileReader("word.txt"));
while((str = in.readLine())!=null) {
change(str,word);
}
in.close();
}
catch (IOException e) {
System.out.println("缓冲区错误");
}
}
private void change(String str, WordFind2[] word2) {
char[] s1=str.toCharArray();
for(int i=0,j=0;i<s1.length;i++) {
if((s1[i]>=65&&s1[i]<=90)||(s1[i]>=97&&s1[i]<=122)) {
add(s1[i],word2);
time++;
}
}
}
private void add(char s, WordFind2[] word2) {
int j=0;
boolean f=false;
for(int i=0;i<word2.length;i++) {
if(word2[i].getWord()=='0') {f=true;j=i;break;}
if(s==word2[i].getWord()) {word2[i].addnum();break;}
}
if(f==true) {
word2[j]=new WordFind2();
word2[j].setWord(s);
}
}
void show(WordFind2[] word2) {
DecimalFormat df = new DecimalFormat( "0.0000");
double b=0;
for(int i=0;word2[i].getWord()!='0';i++) {
b=word2[i].getNum()/word2[i].getTime();
System.out.println(word2[i].getWord()+"\t"+df.format(b));
}
}
void showAsc(WordFind2[] word2) {
WordFind2 word=new WordFind2();
for(int i=0;word2[i].getWord()!='0';i++) {
//if(word2[i].getWord().equals("")) continue;
for(int j=i+1;word2[j].getWord()!='0';j++) {
if(word2[i].getNum()<word2[j].getNum()) {
word.setWord(word2[i].getWord());
word.setNum(word2[i].getNum());
word2[i].setWord(word2[j].getWord());
word2[i].setNum(word2[j].getNum());
word2[j].setWord(word.getWord());
word2[j].setNum(word.getNum());
}
}
}
for(int i=0;word2[i].getWord()!='0';i++) {
//if(word2[i].getWord().equals(""))continue;
System.out.println(word2[i].getWord()+"\t"+word2[i].getNum());//
}
}
}
package Word;
import java.util.Scanner;
public class Menu {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
ShowMenu();
int n=0;
while((n=in.nextInt())!=4) {
switch(n) {
case 0:{
WordFind2[] word=new WordFind2[100];
for(int i=0;i<100;i++) {
word[i]=new WordFind2();
}
word[0].input(word);
word[0].showAsc(word);
};break;
case 1:{
WordFind3[] word=new WordFind3[999999];
for(int i=0;i<word.length;i++) {
word[i]=new WordFind3();
}
word[0].input(word);
word[0].showAsc(word);
};break;
case 2:{
System.out.println("请输入n的数值");
int n2=in.nextInt();
WordFind3[] word=new WordFind3[999999];
for(int i=0;i<word.length;i++) {
word[i]=new WordFind3();
}
word[0].input(word);
word[0].showAsc(word,n2);
};break;
default:System.out.println("输入错误!请重新输入");
}
ShowMenu();
}
}
public static void ShowMenu() {
System.out.println("请选择:");
System.out.println("0:输出全部的字母");
System.out.println("1:输出全部的单词");
System.out.println("2:输出前n项单词");
System.out.println("3:退出");
}
}