[영상 리뷰] 줄바꿈문자(\n)를 쓰지 말자

ghltjd369·2023년 12월 4일
0

영상 링크

줄바꿈 문자를 쓰지 말자

줄바꿈문자

JDK 17 버전부터는 텍스트 블럭을 지원한다.

String message = """
		some
        text
        other
        line""";

텍스트 블럭을 사용할 수 없는 경우 우리는 줄바꿈문자(\n)을 사용하여 줄바꿈을 한다.

String message = "some\ntext\nother\nline";

하지만 윈도우에서는 줄바꿈문자가 \r\n으로 처리가 된다.
물론 맥에서 \n으로 작성하고 윈도우에서 실행한다고 하더라도 자동으로 바꿔주기 때문에 오류가 발생한다거나 하지는 않는다.
그래도 좀... 불.편. 하잖아?

그래서 영상에서 소개한 방법이 있다.

System.lineSeparator()

영상에서 소개한 방법은 바로 System.lineSeparator()를 사용하는 것이다.
해당 메소드를 살펴보면 다음과 같은 설명이 작성되어 있다.

Returns the system-dependent line separator string. It always returns the same value - the initial value of the system property line.separator.
On UNIX systems, it returns "\n"; on Microsoft Windows systems it returns "\r\n".
Returns:
the system-dependent line separator string
Since:
1.7

대충 해석해보면 UNIX 시스템에서는 \n을 반환하고, Microsoft Windows 시스템에서는 \r\n을 반환한다는 뜻이다.
한마디로 시스템에 맞게 줄바꿈 문자열을 반환한다는 의미.

더 편하게 쓰기

영상에서는 System.lineSeparator()를 매번 사용하는 것조차 귀찮아서 별도로 enum 클래스를 만들어서 빼놓았다.

영상의 코드는 다음과 같다.

public enum GlobalMessage {

	NEW_LINE(System.lineSeparator()),
    BLANK_AND_NEW_LINE(System.lineSeparator().repeat(2));
    
    private final String message;
    
    GlobalMessage(String message) {
    	this.message = message;
    }
    
    public String get() {
    	return message;
    }
}

이런 식으로 줄바꿈이 필요할 때는 NEW_LINE.get()을 사용해서 줄바꿈을 하고 있다.
코드에 있는 BLANK_AND_NEW_LINE은 줄바꿈이 두 번 필요할 때 사용하는 코드이다.

예를 들면 다음과 같은 문자열을 출력하고 싶을 때 사용하면 좋다.

<애피타이저>
양송이수프(6,000), 타파스(5,500), 시저샐러드(8,000)

<메인>
티본스테이크(55,000), 바비큐립(54,000), 해산물파스타(35,000), 크리스마스파스타(25,000)

다음과 같이 애피타이저 메뉴를 출력하고 공백 줄을 출력한 뒤 메인 메뉴를 출력하고자 할 때 사용 가능하다.

후기

뭔가 별 거 아닌 것 같지만 굉장히 유용하게 쓰일 것 같다.
또한 코드의 가독성 또한 좋아지는 것 같다.

무엇보다

"간지난다"

0개의 댓글