알람 시계 (2884)

유지원·2021년 6월 18일
0

백준OJ

목록 보기
16/32
post-thumbnail

Java 11

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {

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

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int h = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());

        br.close();

        StringBuilder sb = new StringBuilder();

        if (m < 45) {
            if (h == 0) {
                h = 23;
                sb.append(h).append(" ");
            }
            else {
                h--;
                sb.append(h).append(" ");
            }
            sb.append(m = 60 - (45 - m));
        }
        else {
            sb.append(h).append(" ").append(m - 45);
        }

        System.out.print(sb);
    }
}

StringTokenizer

  • ✔️ 지정한 구분자로 문자열을 쪼개주는 클래스. ➜ 쪼개어진 문자열을 토큰(token) 이라고 부릅니다.
    ex. "100,200,300,400"의 문자열을 ,구분자를 기준으로 4개의 문자열로 쪼갠다.
  • StringTokenizer는 단 한 개의 구분자를 사용해야 한다는 단점.
    복잡한 형태의 구분자로 문자열을 나누어야 할 때는 Scanner나 split을 사용해야 합니다.

생성자/메소드

  • StringTokenizer(String str, String delim)
    : 문자열을 지정한 구분자로 나누는 StringTokenizer를 생성.
    : 구분자는 토큰으로 간주되지 않습니다.

  • StringTokenizer(String str, String delim, boolean returnDelims)
    : 구분자도 토큰으로 간주.

  • int countTokens()
    : 전체 토큰의 수를 반환

  • boolean hasMoreTokens()
    : 토큰이 남아있는지 알려 줌

  • String nextToken()
    : 다음 토큰을 반환

public static void main(String[] args) {
  String source = "100,200,300,400";
  StringTokenizer st = new StringTokenizer(source, ",");
  
  while(st.hasMoreTokens()) {
    System.out.println(st.nextToken());
  }
}

// 결과값
// 100
// 200
// 300
// 400
profile
👋 https://github.com/ujw0712

0개의 댓글