11718번 - 그대로 출력하기
/**************************************** 1. 런타임 에러(nullpointer) 뜨는 코드 *******************************************/
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str="";
while(!(str = br.readLine()).isEmpty()){
/**************************************** 2. 정답 처리 된 코드 *******************************************/
while((str = br.readLine())!= null){
/**************************************** 3. BufferedReader 개행문자 입력 결과 ******************************************/
String str="";System.out.println(str == null); //falsestr = null;System.out.println(str == null); //truestr = br.readLine(); //엔터만 쳤음System.out.println(str == null); //false
/****************************************/
3번의 결과를 따라서 readLine()에 \n을 입력하면 String ""이 오면 null처리가 안되는 구나 싶어서
1번과 같이 입력했는데 런타임에러가 떴고 2번으로 교체하자 정상적으로 등록이 되었습니다.
nullpointer가 뜨는 부분이 isEmpty() 인 것은 알겠습니다..
그런데 2번은 오히려 이클립스에서 코드가 원하는 데로 작동을 안하더라고요 이 차이를 알고 싶습니다.
왜 백준에서는 1번으로 하면 널포인트가 뜨고 이클립스에서 2번으로 하면 무한루프를 돌까요?
그저 ide 차이일까요?
개행문자(엔터)를 입력받을 때는 null로 판단 하지 않다가 콘솔창을 나갈때(crtl+z)는 null로 판단하는 이유가 뭘까요?
댓글을 작성하려면 로그인해야 합니다.
looksee13 1년 전
/**************************************** 1. 런타임 에러(nullpointer) 뜨는 코드 *******************************************/
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str="";
while(!(str = br.readLine()).isEmpty()){
/**************************************** 2. 정답 처리 된 코드 *******************************************/
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str="";
while((str = br.readLine())!= null){
/**************************************** 3. BufferedReader 개행문자 입력 결과 ******************************************/
String str="";
System.out.println(str == null); //false
str = null;
System.out.println(str == null); //true
str = br.readLine(); //엔터만 쳤음
System.out.println(str == null); //false
/****************************************/
3번의 결과를 따라서 readLine()에 \n을 입력하면 String ""이 오면 null처리가 안되는 구나 싶어서
1번과 같이 입력했는데 런타임에러가 떴고 2번으로 교체하자 정상적으로 등록이 되었습니다.
nullpointer가 뜨는 부분이 isEmpty() 인 것은 알겠습니다..
그런데 2번은 오히려 이클립스에서 코드가 원하는 데로 작동을 안하더라고요 이 차이를 알고 싶습니다.
왜 백준에서는 1번으로 하면 널포인트가 뜨고 이클립스에서 2번으로 하면 무한루프를 돌까요?
그저 ide 차이일까요?
개행문자(엔터)를 입력받을 때는 null로 판단 하지 않다가 콘솔창을 나갈때(crtl+z)는 null로 판단하는 이유가 뭘까요?