CS/Java

StringTokenizer

Ynghan 2023. 3. 17. 22:56

StringTokenizer 클래스는 문자열을 우리가 지정한 구분자로 문자열을 쪼개주는 클래스입니다.

그렇게 쪼개어진 문자열을 우리는 토큰이라고 부릅니다.

StringTokenizer를 사용하기 위해서는 java.util.StringTokenizer를 import 해야합니다. 사용법은 굉장히 쉽습니다.

사용하는 메소드도 몇개 없습니다.

자주 사용하는 메소드 설명과 예제를 통해 이 클래스를 어떻게 사용하는지 살펴봅시다.

public StringTokenizer(String str);
: 전달된 매개변수 str을 기본 delim으로 분리합니다. 기본 delimiter는 공백 문자들인 "\t\n\r"입니다.

public StringTokenizer(String str, String delim);
: 특정 delim으로 문자열을 분리합니다.

public StringTokenizer(String str, String delim, boolean returnDelims);
: str을 특정 delim으로 분리시키는데 그 delim까지 token으로 포함할지를 결정합니다. 그 매개변수가 returnDelims로 true일시 포함, false일땐 포함하지 않습니다.

int countTokens()
: 남아있는 token의 개수를 반환합니다. 전체 token의 갯수가 아닌 현재 남아있는 token 개수입니다.

boolean hasMoreElements(), boolean hasMoreTokens()
: 다음의 token을 반환합니다. StringTokenizer는 내부적으로 어떤 위치의 토큰을 사용하였는지 기억하고 있고 그 위치를 다음으로 옮깁니다. 두가지 메소드는 모두 같은 값을 반환합니다.

Object nextElement(), String nextToken()
: 이 두가지 메소드는 다음의 토큰을 반환합니다. 두가지 메소드는 같은 객체를 반환하는데 반환형은 다르네요. nextElement는 Object를, nextToken은 String을 반환하고 있습니다.

 

출처 : https://reakwon.tistory.com/90

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());

        int suNo = Integer.parseInt(st.nextToken());
        int quizNo = Integer.parseInt(st.nextToken());
        long[] S = new long[suNo + 1];

        
        st = new StringTokenizer(br.readLine());
        for(int i = 1; i <= suNo; i++) {
            S[i] = S[i-1] + Integer.parseInt(st.nextToken());
        }
        for(int q = 0; q < quizNo; q++) {
            st = new StringTokenizer(br.readLine());
            int i = Integer.parseInt(st.nextToken());
            int j = Integer.parseInt(st.nextToken());
            System.out.println(S[j] - S[i-1]);
        }

'CS > Java' 카테고리의 다른 글

Checked Exception과 Unchecked Exception에 대해 알아보자.  (0) 2024.03.22
Java 버전 특징 이해하기  (0) 2024.03.07
Hashtable  (0) 2023.12.13
자바에서 형 변환  (0) 2023.03.17
Java OpenJDK 11 설치  (0) 2023.03.01