"바람과 함께 사라지다"찾기이 가장 자주 N 단어를 사용합니다.

"바람과 함께 사라지다"찾기이 가장 자주 N 단어를 사용합니다.

1. 제목 : 가장 자주 (영어로 "바람과 함께 사라지다") 단일 출력 파일을 발생 상위 N 영어 단어이며, 결과는 텍스트 파일에 입력된다.

2, 디자인 아이디어 :

1) 행 하였다 파일을 읽어 공간 쉼표를 누르면, 도트 배열로 단어 분할 유지할 분할 플래그이다.

2) 다른 배열 어레이를 재 석출한다.

3) 각각의 단어 발생 빈도와 첨자 문자열 타입 사이클 정수 어레이에 대응하고, 정수 배열이 존재 산출한다.

단어가 나타나는 4) 입력 문자열과 정수 배열의 첨자는 숫자로 정렬 대응한다.

5) 상기 제 N 워드 파일로 출력한다.

3, 코드 :




수입 java.io.File에;
수입 java.io.InputStreamReader;
수입 java.io.Reader의;
수입 java.util.Scanner;
수입 java.io.BufferedReader의;
수입 java.io.BufferedWriter;
수입 java.io.FileInputStream의;
수입 java.io.FileNotFoundException;
수입 java.io.FileOutputStream의;
수입 java.io.FileReader;
수입 java.io.FileWriter;
수입 때 java.io.IOException;


공용 클래스 Dancitongji {
개인 정적 문자열 STR = "";
개인 정적 스캐너 SC = 새로운 스캐너 (System.in);
개인 정적의 BufferedReader CIN = NULL;
개인 정적 문자열 [η] = 새로운 String [1000000];
[] C = 개인 정적 스트링 새로운 String [10000000];
개인 정적 INT B [] = 새로운 INT [1000000];
개인 정적 INT 길이 = 0;
개인 정적 INT의 길이 1 = 0;
개인 정적 INT NN = 0;
개인 정적 INT의 J = 0;
// 개인 정적 부울 거짓;
공공 정적 공극 CUN ()는 공개 IOException {
{동안 (STR = NULL!) {
int로 I = 0;
STR = str.toLowerCase (); //把大写改成小写
대 (I = 0; I <str.length는 (); 나는 ++) {
경우 ((str.charAt (I)> 96 && str.charAt (I) <123)) {
A [j]가 A [J]를 str.charAt + = (I);
}
(str.charAt (I) == '|| str.charAt (I) ==' '|| str.charAt (I) =='. ') {경우
! A [J] .equals (만약 ( "")) {
J = J + 1;
A [J]를 "";
}
}

}
STR = cin.readLine ();
}
길이 = J;
}
}

공공 정적 무효 표시 () {
(INT에서 K = 0; K <NN k 번째 ++) {대
에서 System.out.println (c [K] + "\의 t '+ B [K]);
}
}
공공 정적 무효 정렬 () {
INT의 T3 = 0;
INT (T2) = 0;
문자열 SR = "";
대해 INT (I = 0; I는 <length1-1; 내가 ++) {
T3 = 1;
대 (INT의 J = I + 1, J <길이 1, J ++) {
경우 (b [T3] <[J] b) {
T3 = J;
}
}
경우 (T3 = I!) {
T2에서의 B = [I];
B [i]는 B의 = [T3];
B [T3]는 T2를 =;
SR의 C = [I];
C [I]의 C = [T3];
C [T3 = SR;
}
}
}
공공 정적 무효 통계 () {
대 (INT에서 K = 0; K <길이 k 번째 ++) {
B [K] = 0;
}
C [0] = A [0];
INT의 TT = 1;
부울 RT = TRUE;
대해 INT (I = 1; i가 길이 <; 내가 ++) {
RT = 거짓;
대 (INT의 J = 0; J <TT; J ++) {
경우 (a [i]를 .equals (C [J])) {
RT = TRUE;
단절;
}
}
(RT 라!) {경우
의 C [고작가] = A [I];
TT ++;
}
}



길이 1 = TT;
대해 INT (I = 0; I <길이 1] 나가 ++) {
대 (INT의 J = 0; J <길이, J ++) {
경우 (a [i]를 .equals (C [J])) {
2 [J] ++ ;
}
}
}
}
공공 정적 무효에서 ReadFile () {
파일 파일 = 새로운 파일 ( "D : \\ JAVA \\ 자바书\\ 3.txt");
시도 {
= 새로운 InputStreamReader (새 FileInputStream에 (파일), "UTF-8")를 읽을 InputStreamReader;
CIN = 새로운 BufferedReader의 (판독);
STR = cin.readLine ();
CUN ();
cin.close ();
read.close ();
}
캐치 (IOException이 전자) {
에서 System.out.println ( "失败读取!");
e.printStackTrace ();
}
}

공공 정적 무효의 WriteFile ()는 IOException가 {던졌습니다
파일 파일 = 새로운 파일 ( "D : \\ JAVA \\ 자바书\\ 2.txt");
경우 (file.exists ()!)
file.createNewFile ();
FileWriter 쓰기 = 새로운 FileWriter (파일, TRUE);
= 새로운 BufferedWriter로 (쓰기)을 BufferedWriter의;
대해 INT (I = 0; I는 NN <; 내가 ++) {
StringBuffer와 SB = 새의 StringBuffer ();
out.write ( "是这第"+ (I + 1) + "个");
out.write (c를 [I] + \ "t"+ B [I]);
out.write ( "\ R \ 없음");

}
out.close ();
}
정적 무효 메인 대중 (문자열 []에 인수) IOException가 {던졌습니다
; ( "당신은 몇 가지 가장 자주 발생하는 전자의 개수 할 단어를 입력하십시오")에서 System.out.println를
NN = sc.nextInt ();
A [0] =을 "";
에서 ReadFile ();
통계 ();
정렬 ();
표시 ();
의 WriteFile ();
}

}

 

4, 테스트를 실행 :

 

추천

출처www.cnblogs.com/20183544-wangzhengshuai/p/11588100.html