Java String new line

JavaStringNewline

Java Problem Overview


I have a string like

"I am a boy".

I would like to print it this way

"I 
am 
a
boy".

Can anybody help me?

Java Solutions


Solution 1 - Java

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

System.out.println("I am a boy".replaceAll("\\s+","\n"));

System.out.println("I am a boy".replaceAll("\\s+",System.getProperty("line.separator"))); // portable way

Solution 2 - Java

You can also use System.lineSeparator():

String x = "Hello," + System.lineSeparator() + "there";

Solution 3 - Java

Example

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

Output

I 
 am 
 a 
 boy

Explanation

It's better to use %n as an OS independent new-line character instead of \n and it's easier than using System.lineSeparator()

Why to use %n, because on each OS, new line refers to a different set of character(s);

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

LF is the acronym of Line Feed and CR is the acronym of Carriage Return. The escape characters are written inside the parenthesis. So on each OS, new line stands for something specific to the system. %n is OS agnostic, it is portable. It stands for \n on Unix systems or \r\n on Windows systems and so on. Thus, Do not use \n, instead use %n.

Solution 4 - Java

It can be done several ways. I am mentioning 2 simple ways.

  1. Very simple way as below:

     System.out.println("I\nam\na\nboy");
    
  2. It can also be done with concatenation as below:

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

Solution 5 - Java

Try:

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

Solution 6 - Java

To make the code portable to any system, I would use:

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

This is important because different OSs use different notations for newline: Windows uses "\r\n", Classic Mac uses "\r", and Mac and Linux both use "\n".

Commentors - please correct me if I'm wrong on this...

Solution 7 - Java

\n is used for making separate line;

Example:

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

Result:

I
am
a
boy

Solution 8 - Java

Platform-Independent Line Breaks:

finalString = "physical" + System.lineSeparator() + "distancing";
System.out.println(finalString);

Output:

physical
distancing

Notes:

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

Solution 9 - Java

If you simply want to print a newline in the console you can use \n for newlines.

If you want to break text in Swing components you can use HTML and its <br>:

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

Solution 10 - Java

If you want to have your code os-unspecific you should use println for each word

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

because Windows uses "\r\n" as newline and unixoid systems use just "\n"

println always uses the correct one

Solution 11 - Java

What about %n using a formatter like String.format()?:

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

As this answer says, its available from java 1.5 and is another way to System.getProperty("line.separator") or System.lineSeparator() and, like this two, is OS independent.

Solution 12 - Java

Full program example, with a fun twist:

Open a new blank document and save it as %yourJavaDirectory%/iAmABoy/iAmABoy.java. "iAmABoy" is the class name.

Paste the following code in and read through it. Remember, I'm a beginner, so I appreciate all feedback!

//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!");
    } 

}

Now, in terminal/cmd, browse to %yourJavaDirectory%/iAmABoy and type:

javac iAmABoy.java
java iAmABoy I am a boy

You can replace the args I am a boy with anything!

Solution 13 - Java

Go for a split.

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

Solution 14 - Java

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

This works It will give one space character also along before enter character

Solution 15 - Java

I use this code 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);
    }
}

with terminal I can use arg I\\nam\\na\\boy to make System.out.println print out

I
am
a
boy

enter image description here

Solution 16 - Java

Here it is!! NewLine is known as CRLF(Carriage Return and Line Feed).

  • For Linux and Mac, we can use "\n".
  • For Windows, we can use "\r\n".

Sample:

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

Result:
output

It worked for me.

Solution 17 - Java

you can use <br> tag in your string for show in html pages

Solution 18 - Java

Here I am using the split function. I braked String from spaces. then I used println function and printed the value.

    public class HelloWorld{

     public static void main(String []args){
              String input = "I am a boy";
              String[] opuput = input.split(" ");
          for (int i = 0; i < opuput.length; i++)
                System.out.println(opuput[i]);
         }        
}

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionMd. Rashedul HasanView Question on Stackoverflow
Solution 1 - JavaPrince John WesleyView Answer on Stackoverflow
Solution 2 - JavaEmaltonView Answer on Stackoverflow
Solution 3 - JavaLevent DiviliogluView Answer on Stackoverflow
Solution 4 - JavaRipon Al WasimView Answer on Stackoverflow
Solution 5 - JavaAndrea GirardiView Answer on Stackoverflow
Solution 6 - JavaAmos BordowitzView Answer on Stackoverflow
Solution 7 - JavaSurendar DView Answer on Stackoverflow
Solution 8 - JavaBandham ManikantaView Answer on Stackoverflow
Solution 9 - JavaStephanView Answer on Stackoverflow
Solution 10 - JavaHachiView Answer on Stackoverflow
Solution 11 - JavaAlex SifuentesView Answer on Stackoverflow
Solution 12 - JavaWolfpack'08View Answer on Stackoverflow
Solution 13 - JavamrVoidView Answer on Stackoverflow
Solution 14 - JavaTanushreeView Answer on Stackoverflow
Solution 15 - JavaTung DuongView Answer on Stackoverflow
Solution 16 - JavaHarisudhaView Answer on Stackoverflow
Solution 17 - JavaMehdi RoostaeianView Answer on Stackoverflow
Solution 18 - JavaVipin PandeyView Answer on Stackoverflow