PS/JAVA

입력

브리오 2025. 4. 27. 16:49

InputStreamReader

System.in -> 바이트 기반 입력

BufferedReader -> 문자 기반 입력

=> 형 변환 어댑터 필요

 

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

 

Integer

int 기본형을 감싸는 래퍼 클래스

public static int parseInt(String s)

parseInt : 래퍼 클래스가 보유한 메서드 중 하나

Auto-Boxing,Unboxing

int a = 10;

Integer obj = a;

// 오토박싱 int -> Integer 자동 형 변환

Integer obj = 20;
int b = obj; // 언박싱: Integer → int;

// 언박싱: Integer → int

 

List<Integer> list = new ArrayList<>();
list.add(10);   // 10은 int → 오토박싱 → Integer
int x = list.get(0); // Integer → 언박싱 → int

→ 이처럼 오토박싱/언박싱이 없으면, 일일이 Integer.valueOf()나 intValue()를 써야 했는데 자바 5부터 이걸 자동으로 처리

 

입력 유형 1 띄어쓰기로 구분해서 입력 줄때

ex)

3 1

->

BufferedReader br = new BufferedReader(new InputStream(System.in));

String[] srr = br.readLine().split(" ");

N = Integer.parseInt(srr[0]);
M = Integer.parseInt(srr[1]);

StringTokenizer(BufferdReader와 시너지 좋음)

📌 기능

 

  • 기본 구분자: " \t\n\r\f" (공백류 전부)
  • 즉, "4 2\n" 같이 여러 공백이 있거나 줄바꿈이 있어도 자동 처리됨

 

📌 주요 메서드

hasMoreTokens() -> 다음 토큰이 있는지 확인 (boolean)

nextToken() -> 다음 토큰 반환 (String)

String input = "apple,banana,grape";
StringTokenizer st = new StringTokenizer(input, ",");

while (st.hasMoreTokens()) {
    System.out.println(st.nextToken());
}

 

📌 사용법

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

int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());