반응형
우아한테크코스 5기 미션 도중 개행에 관련한 피드백을 받았다. 나의 최초의 코드는 아래와 같다.
System.out.println("실행결과\n");
실행결과라는 말을 출력하고 나서 줄바꿈한다! 명쾌한데 뭐가문제징...?
💋 문제점
String에서 줄바꿈(newline)은 Window에서 \r\n, Linux에서 \n으로 서로 다르게 표현된다.
따라서 문자열 사이에 함부로 escape 기호인 \n을 사용하는 것은 다른 종류의 OS에서 예상하지 못한 동작이 될 수 있다.
이때 좋은 해결책이 될 수 있는 것을 소개한다.
아래에서 소개하는 항목들은 모두 프로그램이 실행되는 OS의 개행 문자를 반환한다고 한다.
따라서, Windows 및 Linux에서 실행 시, 동일한 결과를 출력한다!
그렇다고 해서 System.out.println()이 들어가는 자리에 그대로 System.lineSeparator()를 작성하면 안된다. 값을 반환할 뿐, 당장에 개행은 해주지 않는다.
콘솔에 실행결과라는 문구를 출력하고 후에 개행하고 싶다면, 아래 중 하나의 방법으로 작성하면 안전하다.
💋 System.lineSeparator()
System.out.println("실행결과" + System.lineSeparator());
💋 System.getProperty("line.separator")
String newLine = System.getProperty("line.separator");
System.out.println("실행결과" + newLine);
💋 String.format()의 %n
여기서의 %n은 line separator를 의미하기 때문에 사용해도 좋다.
System.out.print(String.format("%s%n", "실행결과"));
반응형