중화사전망 - 서예자전 - 통계 결과를 사전에 넣고 출력하다.
통계 결과를 사전에 넣고 출력하다.
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 ();
}
}