텍스트 파일에 포함된 단어의 갯수 세기.

티스토리 메뉴 펼치기 댓글수0

Dev Center/ThinkBig

텍스트 파일에 포함된 단어의 갯수 세기.

seanhigher
댓글수0
"sample.txt" 라는 파일에 다음과 같은 문자열이 입력되어 있다. "To teach a fish how to swim." 이 텍스트 문서 안에 포함되어 있는 단어의 갯수를 세는 프로그램을 작성해 보자!!


[출처] (초보님들을 위한)IO와 Sring 관련 문제 (자바/Java/C/C++ 개발자모임 [Code人/코드인]) |작성자 조병덕


Devist's thinks.

Step_1. 문제를 해결하기 위해서 가장 먼저 해야 할 것은 파일을 읽어 들이는 것이다. 파일을 읽어들이기 위해서는 한 문자씩 읽는 방법과, 문자열의 단위로 읽어들이는 방법이 있다.
Step_2. 첫번째 방법인 문자를 읽는 방법으로 단어를 세기 위해서는 하나의 문자를 읽을때, 그 문자가 공백임을 파악하고 공백일 경우에 단어의 수를 하나 증가시키는 것이다. 한가지 주의해야 할 점은, 이전의 문자가 공백일경우엔 단어가 아니므로 단어의 카운트를 증가시키지 않아야 한다.
Step_3. 두번째 방법인 문자열의 단위로 읽어들이는 방법은, 좀더 쉽게 문제를 해결할 수 있다. 버퍼를 이용해 문자를 읽어들인 후, 그 문자열을 단어의 단위로 나누어 주는 클래스 StringTokenizer(), 그리고 각 토큰의 갯수를 세어주는 countTokents() 메소드를 사용할 수 있다.




Answer

import java.io.*;
import java.util.*;

public class CountWord {
    public static void main(String[] args) throws IOException {
        File f = new File("sample.txt");
        FileReader fr = new FileReader(f);
        BufferedReader br = new BufferedReader(fr);
        StringTokenizer st;
      
        int cnt = 0;
        String str = "";
        while((str = br.readLine()) != null) {
            st = new StringTokenizer(str);
            cnt += st.countTokens();
        }
      
        System.out.println(cnt);
        br.close();
        fr.close();
    }
}

맨위로