본문 바로가기
Etc/백준(JAVA) 문제풀이

[백준] 1152번 Java 문제풀이

by pplucy 2021. 1. 7.

 

이 문제는 입력된 문장에 포함된 단어가 몇 개인지 맞추는 문제다.

이 문제도 생각해보면 막막할 수 있는데,

코드줄이 굉장히 짧을 정도로 쉽다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
import java.util.StringTokenizer;
 
 
public class Main {
public static void main(String[] args) throws IOException {
        
        Scanner sc = new Scanner(System.in);
        
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine()," ");
 
        System.out.println(st.countTokens());
 
 
 
    }
 
}
cs

 

 

* StringTokenizer

: 문자열을 토큰으로 나눌 수 있는 클래스

: 식별자, 숫자, 인용된 문자열을 구분없이 인식할 수 있다.

 

 

나는 토큰을 공백으로 구분할 수 있도록

new StringTokenizer(br.readLine()," "); 를 써주었고

countTokens를 통해 공백으로 구분된 토큰이 몇 개인지 출력해주었다.

 

만약,

모든 토큰을 출력하고 싶다면

StringTokenizer 클래스의 hashMoreTokens() 메소드와

nextToken() 메소드를 사용해주면 된다.

 

while(st.hashMoreTokens){

system.out.println(st.nextTokens());

}

 

만약 다음 토큰이 존재한다면 (=true)

while문이 돌면서 계속적으로 출력해주게 된다.

반복문을 설정해주지 않는다면 일회성으로 끝나기 때문에

모든 토큰을 출력해낼 수 없다.

 

 

댓글