중화사전망 - 서예자전 - 통계 결과를 사전에 넣고 출력하다.

통계 결과를 사전에 넣고 출력하다.

Java.io. *;

Java.awt. *;

Java.awt.event. *;

Java.util.vector 가져오기

Java.io.file 을 가져옵니다

Java.util.vector 가져오기

계급 언어 통계

{Vector allWorsd, noSameWord

문자 통계 ()

{allworsd = newvector ();

Nosameword = newvector ();

}

Public void wordStatistic (파일 파일)

{try {random access file in one = new random access file (file, "rw"); //파일 파일의 inOne 을 가리키는 객체를 만듭니다.

Random access file intwo = new random access file (file, "rw"); //파일 file inTwo 를 가리키는 개체를 만듭니다.

Long wordStarPostion = 0, wordendsposition = 0;;

Longlength = inone.length ();

Intflag =1;

Int c =-1;

For(int k = 0;; K<= 길이; K++)

{c = inone.read (); // inOne 은 read () 메서드를 호출합니다.

부울 boo =(c<;; =' Z' & amp& ampc & gt=' A ')| |(c<; c < =' z'& & ampc & gt =' a');

만약 (쉿)

{if(flag== 1)

{wordstar position = inone.getfilepointer ()-1;

Flag = 0;;

}

}

기타

{if(flag==0)

{

If(c==- 1)

Wordendposion = inone.getfilepointer ();

기타

Wordendposion = inone.getfilepointer ()-1;

Intwo.seek (wordstarposition); // inTwo 는 seek 메서드를 호출하여 읽기 및 쓰기 위치를 wordStarPostion 으로 이동합니다.

Bytecc [] = new byte [(int) wordendposition-(int) wordstar position];

Int wo. read fully (cc); // inTwo 는 readFully(byte a) 메서드를 호출하고 cc 를 a 에 전달합니다.

String word = 새 문자열 (cc);

Allworsd.add (word);

만약 (! (noSameWord.contains(word)))

Nosameword.add (word);

}

Flag =1;

}

}

Inone.close ();

Intwo.close ();

}

Catch (예외 e){}

}

공통 벡터 getAllWorsd ()

{return allWorsd

}

공통 벡터 getNoSameWord ()

{return noSameWord

}

}

StatisticFrame 클래스는 Frame 을 확장하여 ActionListener 를 구현합니다

언어 통계

TextArea showMessage

버튼을 눌러 파일을 엽니다.

파일 dialog 파일 dialog 열기

Vector allWord, noSameWord

공공 통계 프레임 워크 ()

{statistic = new word statistic ();

Showmessage = newtextarea ();

OpenFile = 새로 만들기 버튼 ("파일 열기");

Openfile.addactionlistener (this);

추가 (openfile, BorderLayout). 북쪽);

Add(showMessage, BorderLayout). 센터);

Openfile dialog = new filedialog (this, 파일 열기 대화상자, filedialog). 하중);

Allword = newvector ();

Nosameword = newvector ();

Setsize (350,300);

Setvisible (true);

AddWindowListener (새 WindowAdapter ()

{공용 void 창 닫기 (WindowEvent e)

{system.exit (0);

}

});

Validate ();

}

공용 유효하지 않은 작업이 수행되었습니다 (트랜잭션 e)

{nosameword.clear ();

Allword.clear ();

Showmessage.settext (null);

Openfiledialog.setvisible (true);

Stringfilename = openfiledialog.getfile ();

만약 (파일 이름! = 비어 있음)

{statistic.wordStatistic (새 파일 (파일 이름));

Allword = statistic.getallworsd ();

Nosameword = statistic.getnosameword ();

Showmessage.append ("\ n"+filename+"포함" +allWord.size()+ "영어 단어");

메시지를 표시합니다. Append(" \ n "+noSameWord.size()+" 다른 영어 단어 ");

메시지를 표시합니다. 추가 ("\ n 사용 빈도 순서로: \ n");

Intcount [] = new int [no sameword.size ()];

For(int I = 0;; 나 & ltno sameword.size (); I++)

{string s1= (string) no sameword.element at (I);

For(int j = 0;; J & ltallword.size (); J++)

{strings2 = (string) all word.element at (j);

If(s 1.equals(s2))

Count [I]++;

}

}

For(int m = 0;; M & ltnosameword.size (); M++)

{for (int n = m+1; N & ltnosameword.size (); N++)

{if (count [n] > 개수 [m])

{stringtemp = (string) no sameword.element at (m);

No same word.setelementat ((string) no same word.element at (n), m);

NoSameWord.setElementAt(temp, n);

Int t = count [m];

Count [m] = count[m]= count[n];;

Count [n] = t;

}

}

}

For(int m = 0;; M & ltnosameword.size (); M++)

{showmessage.append ("\ n"+(string) no sameword.element at (m)+

":"+count[m]+"/"+allWord.size()+

"="+(1.0 * count [m])/allword.size ());

}

}

}

}

공용 클래스 sy6_2

{public static voidmain (stringargs []) 을 참조하십시오

{new statisticframe ();

}

}