Java String改行


回答:




49

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

出力

I 
 am 
 a 
 boy

説明

%n代わりにOSに依存しない改行文字として使用することをお勧めします。使用する\nよりも簡単です。System.lineSeparator()

%n各OSで改行が異なる文字のセットを参照するため、を使用する理由。

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

LFLine Feedの頭字語で、CRCarriage Returnの頭字語です。エスケープ文字は括弧内に記述されています。したがって、各OSでは、新しい行はシステムに固有の何かを表しています。%nOSに依存せず、移植可能です。\nUnixシステムまたは\r\nWindowsシステムなどを表します。したがって、を使用せず\n、代わりにを使用してください%n


1
ドキュメントの行区切りセクションを参照
Lu55

29

それはいくつかの方法で行うことができます。私は2つの簡単な方法について言及しています。

  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");

OSによって改行の表記が異なるため、これは重要です。Windowsでは「\ r \ n」、Classic Macでは「\ r」、MacとLinuxでは「\ n」を使用しています。

コメンター-これが間違っている場合は修正してください...


7

\n 別の行を作成するために使用されます。

例:

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

結果:

I
am
boy

4
最初に他の回答を読んでください。あなたの解決策はすでにそこにあります。
Honza Zidek 2015

6

コンソールで改行を印刷するだけの場合は、「\ n」を使用して改行できます。

Swingコンポーネントのテキストを分割する場合は、htmlを使用できます。

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

これでうまくいきます。そして、私はユニコードフォントを使用しています。これはうまくいきます。
Sahan 2017

5

あなたのコードをOS非特定にしたい場合は、各単語にprintlnを使用する必要があります

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

Windowsが「\ r \ n」を改行として使用し、Unixoidシステムが「\ n」のみを使用するため

printlnは常に正しいものを使用します


3
これは、あまりにも多くのSystem.out.println()を記述するための良い解決策ではありません
Ripon Al Wasim

@op 文字列println()最後(先頭ではない)に改行文字を追加することに注意してください。
Wolfpack'08

@Hachi、System.lineSeparator()またはSystem.getProperty("line.separator")コードシステムを独立させるために使用できます。
Ashish Kumar 2017

3

次の%nようなフォーマッタを使用するのはどうString.format()ですか?

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

この答えは javaの1.5からそのが利用可能、と言うと、別の方法であるSystem.getProperty("line.separator")か、System.lineSeparator()そして、この2のように、ある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!");
    } 

}

次に、terminal / cmdで、以下を参照し%yourJavaDirectory%/iAmABoyて入力します。

javac iAmABoy.java
java iAmABoy I am a boy

args I am a boyは何にでも置き換えることができます。


2つのループは必要ありません。配列の代わりにargs直接渡すか、スカラーnlSeparated()nlSeparated()取得しStringます。最初のオプションはおそらくより良いです。また、のprintln代わりにで署名を印刷してくださいprint
Mad Physicist 14

mainfor (String arg : args) { nlSeparated(arg); }単にに置き換えnlSeparated(args);ます。nlSeparatedはすでにのリストを受け入れますString。より詳しい
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");

これは動作します文字を入力する前にも1つのスペース文字を与えます


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ページで機能するだけだと言いました、それはWebページで単純なテキストを表示したい人のための提案にすぎません。
Mehdi Roostaeian 2018
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.