기록만이살길

Java에서 문자열에 개행 문자 추가

Spring

Java에서 문자열에 개행 문자 추가

기록만이살길 2023. 3. 17. 21:35
반응형

1. 개요

프로그래밍 중에 문자열 형식화 및 텍스트 출력 생성이 종종 나타납니다. 대부분의 경우 출력 형식을 지정하려면 문자열에 새 줄을 추가해야 합니다.

개행 문자를 사용하는 방법에 대해 알아보겠습니다.

2. 문자열에 개행 문자 추가

운영 체제에는 새 줄의 시작을 나타내는 특수 문자가 있습니다. 예를 들어 Linux에서 새 줄은 “ \n” 으로 표시되며 줄 바꿈 이라고도 합니다  . Windows에서 새 줄은 " \r\n" 을 사용하여 표시되며 캐리지 리턴 줄 바꿈 또는 CRLF 라고도 합니다  .

Java에서 새 줄을 추가하는 것은 문자열 끝에 " \n" , " \r"  또는 " \ r \n"  을 포함하는 것만큼 간단합니다.

2.1. CRLF 줄 바꿈 사용

이 예에서는 두 줄의 텍스트를 사용하여 단락을 만들고 싶습니다. 특히 우리는 line2가 line1 다음의 새 줄에 나타나기를 원합니다 .

Unix/Linux/New Mac 기반 OS의 경우 " \n"을 사용할 수 있습니다.

String line1 = "Humpty Dumpty sat on a wall.";
String line2 = "Humpty Dumpty had a great fall.";
String rhyme = line1 + "\n" + line2;

Windows 기반 OS를 사용하는 경우 " \r\n"을 사용할 수 있습니다.

rhyme = line1 + "\r\n" + line2;

이전 Mac 기반 OS의 경우 " \r"을 사용할 수 있습니다.

rhyme = line1 + "\r" + line2;

새 줄을 추가하는 세 가지 방법을 시연했지만 안타깝게도 플랫폼에 따라 다릅니다.

2.2. 플랫폼 독립적 줄 구분 기호 사용

코드가 플랫폼 독립적이기를 원할 때 시스템 정의 상수를 사용할 수 있습니다.

예를 들어  System.lineSeparator()를 사용하여 줄 구분 기호를 제공합니다.

rhyme = line1 + System.lineSeparator() + line2;

또는 System.getProperty(“line.separator”)를 사용할 수도 있습니다  .

rhyme = line1 + System.getProperty("line.separator") + line2;

2.3. 플랫폼 독립적 개행 문자 사용

줄 구분 기호는 플랫폼 독립성을 제공하지만 문자열을 연결해야 합니다.

System.out.printf 또는  String.format 과 같은 것을 사용하는 경우 플랫폼 독립적 줄 바꿈 문자 %n 을 문자열 내에서 직접 사용할 수 있습니다 .

rhyme = "Humpty Dumpty sat on a wall.%nHumpty Dumpty had a great fall.";

이는 문자열 내에 System.lineSeparator()를 포함하는 것과 동일 하지만 문자열을 여러 부분으로 나눌 필요는 없습니다.

3. HTML 페이지에 개행 문자 추가

HTML 페이지의 일부인 문자열을 생성한다고 가정합니다. 이 경우 HTML 구분 태그  <br> 를 추가할 수 있습니다 .

유니코드 문자 "& #13;"  도 사용할 수 있습니다. (캐리지 리턴) 및 "& #10;" (줄 바꿈).  이러한 문자는 작동하지만 모든 플랫폼에서 기대하는 것과 정확히 일치하지는 않습니다. 대신 줄 바꿈에 <br>을 사용하는 것이 좋습니다 .

또한 일부 HTML 요소에서 "\n"을 사용하여 줄 바꿈을 할 수 있습니다.

전반적으로 이들은 HTML에서 줄을 끊는 세 가지 방법입니다. 사용 중인 HTML 태그에 따라 사용할 태그를 결정할 수 있습니다.

3.1. HTML 브레이크 태그

HTML 구분 태그 <br> 를 사용하여 줄을 끊을 수 있습니다.

rhyme = line1 + "<br>" + line2;

줄 바꿈을 위한 <br> 태그 는 <body> , <p> , <pre> 등과 같은 거의 모든 HTML 요소에서 작동합니다 . 그러나 <textarea> 태그 에서는 작동하지 않습니다 .

3.2. 개행 문자

텍스트가 <pre> 또는 <textarea> 태그 로 묶여 있으면 '\n'을 사용하여 줄 바꿈을 할 수 있습니다 .

rhyme = line1 + "\n" + line2;

3.3. 유니코드 문자

마지막으로 유니코드 문자 "& #13;"을  사용할 수 있습니다. (캐리지 리턴) 및 "& #10;" (줄 바꿈) 줄 바꿈. 예를 들어 <textarea> 태그에서 다음 중 하나를 사용할 수 있습니다.

rhyme = line1 + "
" + line2;
rhyme = line1 + "
" + line2;

<pre> 태그 의 경우  아래 두 줄 모두 작동합니다.

rhyme = line1 + "
" + line2;
rhyme = line1 + "

" + line2;

4. \n\r 의 차이점

\r  및 \n 은 각각 ASCII 값 13(CR) 및 10(LF)으로 표시되는 문자입니다. 다 두 줄 사이의 구분을 나타내지운영 체제에서는 이를 다르게 사용합니다. 

Windows에서는 새 줄을 시작하는 데 두 문자 시퀀스가 ​​사용되며 CR 바로 뒤에 LF가 옵니다. 반대로 Unix 계열 시스템에서는 LF만 사용됩니다.

Java 응용 프로그램을 작성할 때 응용 프로그램이 실행될 운영 체제에 따라 다르게 동작하기 때문에 사용하는 줄 바꿈 문자에 주의해야 합니다.

가장 안전하고 상호 호환 가능한 옵션은 System.lineSeparator()를 사용하는 것입니다. 이렇게 하면 운영 체제를 고려할 필요가 없습니다.

5. 결론

이 기사에서는 Java에서 문자열에 개행 문자를 추가하는 방법에 대해 설명했습니다.

또한 System.lineSeparator()System.getProperty(“line.separator”) 를 사용하여 새 줄에 대한 플랫폼 독립적인 코드를 작성하는 방법도 살펴보았습니다 .

마지막으로 HTML 페이지를 생성하는 경우 새 줄을 추가하는 방법을 마무리했습니다.

이 기사의 전체 구현은 GitHub 에서 찾을 수 있습니다 .

res – REST with Spring (eBook) (everywhere)
참고
  • https://docs.spring.io/spring-framework/docs/current/reference/html
  • https://www.baeldung.com/java-string-newline
반응형