14431번 - 소수마을
보통 저는 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();
이렇게 하거나,
StringTokenizer st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
이렇게 하니 정상적으로 처리가 되더라고요.
혹시나 저처럼 계속 런타임에러 뜨시는 분들을 위해서 글 남깁니다.
댓글을 작성하려면 로그인해야 합니다.
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());
이렇게 하니 정상적으로 처리가 되더라고요.
혹시나 저처럼 계속 런타임에러 뜨시는 분들을 위해서 글 남깁니다.