[백준,BOJ 1152] 단어의 개수(JAVA 구현)
코테/백준 온라인 저지(BOJ)

[백준,BOJ 1152] 단어의 개수(JAVA 구현)

반응형

-해법

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;
        
        String alph = br.readLine();       
        int cnt = 0;
        
        st = new StringTokenizer(alph);
        while(st.hasMoreTokens()) {
        	st.nextToken();
        	cnt++;
        }
               
        System.out.println(cnt);
        
        in.close();
    }
}

  이 문제는 입력받은 문자열을 공백을 기준으로 구분할 수 있는지 묻는 문제라고 생각한다. 이전에 풀었을 땐 split() 메서드를 활용하여 풀었지만, 이젠 StringTokenizer를 사용하는 것이 더 편하기 때문에 사용해 보았다. (BufferedReader은 덤으로!)

 

  우선 BufferedReader를 통해 데이터를 입력받은 후, StringTokenizer 객체를 생성하면서 넘겨준다. 이후 hasMoreTokens() 메서드를 통해 단어가 존재할 경우 반복하면서 cnt를 증가시켜 주면 된다. 단, 여기서 주의해야 할 점은 단순히 cnt만 증가시킬 경우 무한반복이 되므로 nextToken()을 이용해 토큰들을 제거해주어야 한다. 

반응형