[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 == null) System.out.println("str1 is null"); if(str1.isEmpty()) System.out.println("str1 is empty"); if(str2 == null) System.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)