2013년 6월 28일 금요일

(130628) 5일차 StringTest3.java, (split 메소드 예제, 5일차 2교시 split 메소드 문제)

 - 연습 소스
public class StringTest3 {

public static void main(String[] args) {
String data = "봄봄봄 봄이 왔어요 우리들 마음속에도";
String[] result = data.split(" "); // 공백을 기준으로 자름

for(int i=0 ; i<result.length ; i++)
System.out.println(result[i]);
}
}


 - 결과







 - 문제 : 해당 문자열에서 가장 많은 단어를 찾고, 그 단어와 개수를 출력
 - 소스
public class StringTest4 {

public static void main(String[] args) {
// 다음 문자열에서 가장 많은 단어를 찾고, 그 단어와 개수를 출력
String data ="봄 봄 봄 봄이 왔네요 " +
"우리가 처음 만났던 그때의 향기 " +
"그대로 그대가 앉아 있었던 그 벤치 옆에 나무도 " +
"아직도 남아있네요 살아가다 보면 잊혀질 거라 했지만 " +
"그 말을 하며 안될거란걸 알고 있었소 그대여 너를 처음 " +
"본 순간 나는 바로 알았지 그대여 나와 함께 해주오 이 봄이 가기 전에";

String [] result = data.split(" ");

for(int i = 0; i < result.length ; i++){
System.out.println(result[i]);
}
// 하나의 배열번지를 기준으로 모든 배열을 검색하는 소스
int max = 0; // 최대 빈도수를 의미
String word = ""; // 가장 많이 나오는 단어
for(int i = 0; i < result.length ; i++){
int count = 0; // 반복문이 한번 돌때마다 값을 초기화 해줌
for(int j = 0 ; j < result.length ; j++){
if(result[i].equals(result[j])){
// 단어와 단어가 같다면 카운트를 증가
count++;
}
}
// 하나를 전부 반복한 후에 count값이 max값 보다 크다면
if(max < count){
max = count;
word = result[i];
}
}
System.out.println("최대 빈도 단어는 \"" +word +"\"이고 반복횟수는 "+(max+1));
}
}


 - 결과