본 포스팅은 Java에서 문자열에 개행문자를 추가하는 방법을 소개합니다.


개요

Java에서 문자열에 개행문자를 추가해야 하는 경우 이스케이프 문자 ‘\n’을 사용할 수 있다. 일반적인 사용 예시는 다음과 같다.

String sample = "Hello,\nMy name is Java";
System.out.println(sample);

// Hello,
// My name is Java

이스케이프 문자 사용 방법은 간단하지만, Java에서 ‘\n’을 사용하는 경우 운영체제 간에 호환성 문제가 발생할 수 있다.

  • Windows: \r\n
  • Mac OS(Version 10 부터): \n
  • Unix 기반 OS: \n

아래는 Wikipedia에서 찾은 내용이다. 1984년부터 2001년까지 Mac OS Version 1 ~ 9를 사용하는 동안 개행문자가 ‘\r’라는 것을 알 수 있다.

Newline – Wikipedia

따라서, Java에서 개행문자로 이스케이프 문자를 사용하는 경우 예상치 못한 결과가 발생할 수 있다.


해결 방법

운영체제 간에 호환성을 고려하여 Java에서 개행문자를 추가하는 가장 안전한 방법은 System.lineSeparator() 메서드를 사용하는 것이다.

이 메서드는 Java Version 7부터 제공하며, java.lang.System 패키지에 존재한다. 아래는 Oracle Java api 문서에서 찾은 내용이다.

Class System

System.lineSeparator() 메서드가 UNIX systems에는 ‘\n’, Microsoft Windows systems에서는 ‘\r\n’을 반환하는 것을 알 수 있다.

다음은 System.lineSeparator() 메서드 사용 방법이다.

public class MyClass {
  public static void main(String args[]) {
    String newLine = System.lineSeparator();
    String sample = "Hello," + newLine + "My name is Java";
    System.out.println(sample);
  }
}

개행문자를 자주 사용하는 상황이라면, System.lineSeparator() 메서드를 여러번 호출하는 것보다 위 예시처럼 변수에 할당하는 것이 좋다. 코드를 더 간결하고 깔끔하게 만들기 때문이다.


Conclusion

개행문자로 ‘\n’을 사용하는 경우 운영체제 간에 호환성 문제가 발생하므로 System.lineSeparator() 메서드를 사용한다.


참고

  1. Wikipedia – Newline
  2. Oracle – System.lineSeparator()

Related Post

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다