본 포스팅은 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’라는 것을 알 수 있다.
따라서, Java에서 개행문자로 이스케이프 문자를 사용하는 경우 예상치 못한 결과가 발생할 수 있다.
해결 방법
운영체제 간에 호환성을 고려하여 Java에서 개행문자를 추가하는 가장 안전한 방법은 System.lineSeparator() 메서드를 사용하는 것이다.
이 메서드는 Java Version 7부터 제공하며, java.lang.System 패키지에 존재한다. 아래는 Oracle Java api 문서에서 찾은 내용이다.
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() 메서드를 사용한다.