Data Structure & Algorithm/백준

1152번 : 단어의 개수 (String의 split 메소드 주의사항)

6cess 2022. 9. 19. 11:34

백준 1152번 문제

문자열을 입력 받고 공백을 기준으로 단어의 개수를 출력하는 문제다. 처음에는 String에 trim 메서드와 split 메소드를 활용하면 단순하게 해결되는 문제인 줄 알았다. 하지만 막상 해보니 아니었다. 한참 헤메다가 해결법을 찾아보니 입력이 공백일 경우에도 split 메소드는 1을 리턴해서 일어난 문제였다.. split 메소드는 공백일 경우 "" 로 되어있는 문자열 하나로 취급해서 1을 리턴한다. 그래서 입력 문자열이 공백일 예외 경우를 따로 처리해서 해결했다.

 

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.ArrayList;

public class Main {
	
	public static void main(String[] args) throws IOException {

		BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); 
		
		String st = br.readLine();
		
		st = st.trim();
		
		if(st.equals("")){
			bw.write("0");
		} else {
		
			String[] stArr = st.split(" ");
			
			bw.write(stArr.length + "");
		}
		
		bw.flush();
				
		bw.close();
	}
}