코딩/백준

[백준 1152번/문자열] 단어의 개수 - Java

조밈밍 2022. 3. 9. 12:19

* 맨앞부분, 맨뒷부분 공백이 나올 경우도 생각해야한다

 

import java.util.Scanner;

public class Main {
	
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String s = sc.nextLine();
		int count = 0; 
		
		for(int i=0; i<s.length(); i++) {
			char ch = s.charAt(i);
			if(ch == ' ') {
				count++;
			}
		}
		if(s.charAt(0) == ' ') {
			count -= 1;
		}
		if(s.charAt(s.length()-1) == ' '){
			count -= 1; 
		}
		
		System.out.println(count+1);

	}
}

내가 푼거 => 간결하지 않다😅

 

공부

찾아보니 StringTokenizer라는 자바 API가 있었다.

: 지정한 구분자로 문자열을 나눠주는 클래스, 그렇게 나눠진 문자열을 토큰(token)이라 부른다.

: StringTokenizer 객체명 = new StringTokenizer(배열명, 구분문자);

import java.util.Scanner;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		String s = sc.nextLine();
		
		// 공백을 기준으로 s를 나눈 토큰들을 st에 저장
		StringTokenizer st = new StringTokenizer(s," ");
		
		// countTokens() 토큰의 개수 반환
		System.out.println(st.countTokens());
	}
}

이렇게 아주 간단하게 할 수 있다👍