자바 문자열 줄 바꿈


133

나는 같은 문자열을 가지고있다.

"I am a boy".

이런 식으로 인쇄하고 싶습니다

"I 
am 
a
boy".

아무도 나를 도울 수 있습니까?

답변:




49

System.out.printf("I %n am %n a %n boy");

산출

I 
 am 
 a 
 boy

설명

그것은 사용하는 것이 좋습니다 %n운영체제 독립적 인 개행 문자 대신으로\n 것보다 쉽습니다.System.lineSeparator()

사용하는 %n이유는 각 OS에서 새 줄이 다른 문자 집합을 나타 내기 때문입니다.

Unix and modern Mac's   :   LF     (\n)
Windows                 :   CR LF  (\r\n)
Older Macintosh Systems :   CR     (\r)

LF줄 바꿈 의 약어 이고 CR캐리지 리턴 의 약어입니다 . 이스케이프 문자는 괄호 안에 표시됩니다. 따라서 각 OS에서 새 줄은 시스템에 특정한 것을 나타냅니다. %nOS에 구애받지 않고 이식 가능합니다. 그것은 의미 \n유닉스 시스템 또는 \r\nWindows 시스템과에 이렇게. 따라서 사용하지 말고 \n대신 사용하십시오 %n.


1
문서의 줄 구분 기호 섹션 참조
Lu55

29

여러 가지 방법으로 수행 할 수 있습니다. 나는 두 가지 간단한 방법을 언급하고 있습니다.

  1. 아래와 같이 매우 간단한 방법 :

    System.out.println("I\nam\na\nboy");
  2. 다음과 같이 연결하여 수행 할 수도 있습니다.

    System.out.println("I" + '\n' + "am" + '\n' + "a" + '\n' + "boy");


13

코드를 모든 시스템에서 이식 가능하게 만들려면 다음을 사용하십시오.

public static String newline = System.getProperty("line.separator");

Windows마다 "\ r \ n"을 사용하고 Classic Mac은 "\ r"을 사용하고 Mac과 Linux는 모두 "\ n"을 사용하므로 OS마다 다른 줄 바꿈 표기법이 사용되므로 중요합니다.

해설자-내가 틀렸다면 정정 해주세요.


7

\n 별도의 라인을 만드는 데 사용됩니다.

예:

System.out.print("I" +'\n'+ "am" +'\n'+ "boy"); 

결과:

I
am
boy

4
다른 답변을 먼저 읽으십시오. 귀하의 솔루션은 이미 있습니다.
혼자 지덱

6

콘솔에서 줄 바꿈을 인쇄하려면 줄 바꿈에 '\ n'을 사용할 수 있습니다.

스윙 구성 요소에서 텍스트를 나누려면 html을 사용할 수 있습니다.

String s = "<html>first line<br />second line</html>";

이것은 나를 위해 작동합니다. 그리고 유니 코드 글꼴을 사용하고 있습니다. 이것은 더 잘 작동합니다.
Sahan

5

코드를 구체적이지 않게하려면 각 단어마다 println을 사용해야합니다.

System.out.println("I");
System.out.println("am");
System.out.println("a");
System.out.println("boy");

Windows는 "\ r \ n"을 줄 바꿈으로 사용하고 유닉스 시스템은 "\ n"만 사용하기 때문에

println은 항상 올바른 것을 사용합니다


3
너무 많은 System.out.println ()을 작성하는 것은 좋은 해결책이 아닙니다.
Ripon Al Wasim

@op 문자열 println() 부분 (개시 아님)에 줄 바꿈 문자 를 추가 한다는 것을 기억하십시오 .
Wolfpack'08

@Hachi System.lineSeparator()또는 System.getProperty("line.separator")코드 시스템을 독립적으로 만드는 데 사용할 수 있습니다.
Ashish Kumar

3

? %n와 같은 포맷터 를 사용하는 것은 String.format()어떻습니까?

String s = String.format("I%nam%na%nboy");

으로 이 대답은 자바 1.5에서 사용 가능한라고하고 또 다른 방법이다 System.getProperty("line.separator")또는 System.lineSeparator()하고,이 두처럼입니다 OS 독립적 .


2

플랫폼 독립적 인 줄 바꿈

finalString = "bandham" + System.lineSeparator() + "manikanta"; System.out.println(finalString);

산출: bandham manikanta

노트: Java 6: System.getProperty("line.separator") Java 7 & above: System.lineSeparator()


1

재미있는 프로그램으로 전체 프로그램 예제 :

새 빈 문서를 열고 다른 이름으로 저장 %yourJavaDirectory%/iAmABoy/iAmABoy.java . "iAmABoy"는 클래스 이름입니다.

다음 코드를 붙여넣고 읽습니다. 초보자입니다. 모든 의견을 보내 주셔서 감사합니다.

//The class name should be the same as your Java-file and directory name.
class iAmABoy {

    //Create a variable number of String-type arguments, "strs"; this is a useful line of code worth memorizing.
    public static void nlSeparated(String... strs) {

        //Each argument is an str that is printed.
        for (String str : strs) {

            System.out.println(str);

        }

    }

    public static void main(String[] args) {

        //This loop uses 'args' .  'Args' can be accessed at runtime.  The method declaration (above) uses 'str', but the method instances (as seen below) can take variables of any name in the place of 'str'.
        for (String arg : args) {

            nlSeparated(arg);

        }

        //This is a signature.  ^^
        System.out.print("\nThanks, Wolfpack08!");
    } 

}

이제 터미널 / cmd에서 다음을 찾아서 %yourJavaDirectory%/iAmABoy입력하십시오.

javac iAmABoy.java
java iAmABoy I am a boy

args I am a boy를 무엇이든 바꿀 수 있습니다 !


두 개의 루프가 필요하지 않습니다. 배열 대신 args직접 전달 nlSeparated()하거나 nlSeparated()스칼라 String를 취하십시오 . 첫 번째 옵션이 더 좋습니다. 또한 println대신 서명으로 서명하십시오 print.
Mad Physicist

에서 main대체 for (String arg : args) { nlSeparated(arg); }단지와 함께 nlSeparated(args);. nlSeparated이미의 목록을 수락합니다 String. 자세한 설명은 여기를 참조하십시오. stackoverflow.com/a/12534579/2988730
Mad Physicist

1

분할하러 가십시오.

String string = "I am a boy";
for (String part : string.split(" ")) {
    System.out.println(part);
}

0

System.out.println ( "I \ nam \ na \ nboy");

이것은 작동합니다. 문자를 입력하기 전에 하나의 공백 문자를 제공합니다.


0

이 코드를 사용합니다 String result = args[0].replace("\\n", "\n");

public class HelloWorld {

    public static void main(String[] args) {
        String result = args[0].replace("\\n", "\n");
        System.out.println(result);
    }
}

터미널로 arg I\\nam\\na\\boy를 사용하여 System.out.println인쇄 할 수 있습니다.

I
am
a
boy

여기에 이미지 설명을 입력하십시오


-1

<br>html 페이지에 표시하기 위해 문자열에 태그를 사용할 수 있습니다


2
출력에 마크 업을 포함시키는 것은 항상 나쁜 생각입니다. 사용자가 어떤 디스플레이 기술을 사용하는지 알 수 없습니다. 가능한 한 일반적으로 유지하고 필요한 경우 표시 할 형식화 필터를 사용하는 것이 가장 좋습니다.
TMN

나는 그것이 html 페이지에서만 작동한다고 말했고, 웹 페이지에 간단한 텍스트를 보여주고 싶은 사람들에게 제안했습니다.
Mehdi Roostaeian
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.