ETC..

[Baekjoon] 11718 그대로 출력하기

알 수 없는 사용자 2018. 9. 7. 11:05

[Baekjoon] 11718 그대로 출력하기

https://www.acmicpc.net/problem/11718


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
import java.util.ArrayList;
import java.util.Scanner;
 
public class Main {
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
        ArrayList<String> list = new ArrayList<>();
        String input;
        while(true) {
            input = s.nextLine();
            if(input.isEmpty()) {
                break;
            }
            list.add(input);
        }
        
        for(int i = 0; i < list.size(); i++) {
            System.out.println(list.get(i));
        }
    }
}
 
cs

- 10번 라인
 Scanner의 hasNextLine()을 쓰면 무한으로 true를 return 한다.
 그래서 12번 라인의 if로 break 처리했다.

- 12번 라인
 isEmpty()  vs  == null 


1
2
3
4
5
6
7
8
9
10
11
12
13
String str1 = "";
 
String str2 = null;
 
 
 
if(str1 == nullSystem.out.println("str1 is null");
 
if(str1.isEmpty()) System.out.println("str1 is empty");
 
if(str2 == nullSystem.out.println("str2 is null");
 
if(str2.isEmpty()) System.out.println("str2 is empty");
cs


위와 같은 코드의 실행결과

str1 is empty

str2 is null

Exception in thread "main" java.lang.NullPointerException

at backjoon.Main.main(Main.java:17)