se1620236   3년 전

보통 저는 Java 로 데이터 입력받을때,

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

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

이렇게 해보고, 만약에 런타임 에러 뜨면

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

이렇게 입력 데이터들 사이에 공백을 모두 제거한 뒤,

int x = Integer.parseInt(s[0]);

int y = Integer.parseInt(s[1]);

이런식으로 문자열을 파싱해서 사용했었는데요,


이 문제는 입력 데이터에 불순물? 이 많아서 그런지 데이터 입력 시, 문자열을 int로 파싱하는 부분에서 NumberFormatException 예외가 발생하더군요.

그래서, Scanner sc = new Scanner(System.in);

int x = sc.nextInt();

int y = sc.nextInt();

이렇게 하거나,

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

StringTokenizer st = new StringTokenizer(br.readLine());

int x = Integer.parseInt(st.nextToken());

int y = Integer.parseInt(st.nextToken());

이렇게 하니 정상적으로 처리가 되더라고요.

혹시나 저처럼 계속 런타임에러 뜨시는 분들을 위해서 글 남깁니다.

댓글을 작성하려면 로그인해야 합니다.