빠른A+B

황상익·2023년 12월 19일
0

백준

목록 보기
9/15
package 반복문;

import java.io.*;
import java.util.StringTokenizer;

public class 빠른A더하기B {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

       int N = Integer.parseInt(br.readLine());

        StringTokenizer stk;

        for (int i = 0; i < N; i++) {
            //StringTokenizer의 토큰을 반환
            stk = new StringTokenizer(br.readLine(), " ");
            //바꾼 두 토큰을  더해준 값을 bw.write에 넣어준다.
            bw.write((Integer.parseInt(stk.nextToken()) + Integer.parseInt(stk.nextToken()))+ "\n");
        }
        br.close();

        //버퍼를 비운 뒤
        bw.flush();
        //버퍼를 닫아준다. 
        bw.close();
    }
}

내가 이 문제를 선택한 이유는 단 한가지다
StringTokenizer를 사용하는게 미숙하기 때문에 이 기회에 개념을 조금더 확립하고자 이 문제를 풀게 되었다

StringTokenizer
String - 문자, Tokenizer - 토큰화 한다.

StringTokenizer 생성자
//1. 띄어쓰기 기준으로 문자열을 분리StringTokenizer st = new StringTokenizer(문자열);

//2. 구분자를 기준으로 문자열을 분리StringTokenizer st = new StringTokenizer(문자열, 구분자);

/ 3. 구분자를 기준으로 문자열을 분리할 때 구분자도 토큰으로 넣는다. (true) 구분자를 분리된 문자열 토큰에 포함 시키지 않는다. (false) (디폴트 : false) / StringTokenizer st = new StringTokenizer(문자열 , 구분자 , true/false);
출처: https://dev-coco.tistory.com/94 [슬기로운 개발생활:티스토리]

  1. 간단하게 문자열을 이용해 StringTokenizer 객체를 사용한다. 이럴 경우 문자열은 띄어쓰기 기준으로 나뉘게 된다.

  2. 어떤 걸 기준으로 나눌지 구분자를 명시해 StringTokenizer 객체를 생성

  3. 생성자 마지막 인자에 true/flase boolean 타입 값을 넣어주는데 true면 토큰 포함 false면 구분하는데만 쓰고 토큰 포함하지 않는다.

StringTokenzier 메소드
hasMoreTokens, countTokens, nextToken

StringTokenizer와 spilt 차이
StringTokenizer는 문자 또는 문자열로 구분한다면, spilt은 정규식 표현

StringTokenizer는 빈 문자열을 토큰으로 인식 X, spilt은 빈문자열 토큰으로 인식

StringTokenizer는 결과값이 문자열, spilt은 값이 문자열이다.

profile
개발자를 향해 가는 중입니다~! 항상 겸손

0개의 댓글