Lägga till en Newline-karaktär till en sträng i Java

1. Översikt

Strängformatering och generering av textutdata kommer ofta upp under programmeringen. I många fall finns det ett behov av att lägga till en ny rad i en sträng för att formatera utdata.

Låt oss diskutera hur man använder newline-tecken.

2. Lägga till Newline-tecken i en sträng

Operativsystem har specialtecken som anger början på en ny rad. Till exempel i Linux betecknas en ny rad med " \ n" , även kallad Line Feed . I Windows betecknas en ny rad med " \ r \ n" , ibland kallad Carriage Return and Line Feed , eller CRLF .

Att lägga till en ny rad i Java är så enkelt som att inkludera " \ n" , " \ r" eller " \ r \ n" i slutet av vår sträng.

2.1. Använda CRLF Line-Breaks

För detta exempel vill vi skapa ett stycke med två textrader. Specifikt vill vi att rad2 ska visas i en ny rad efter rad1 .

För ett Unix / Linux / nytt Mac-baserat OS kan vi använda “ \ n”:

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

Om vi ​​har ett Windows-baserat operativsystem kan vi använda “ \ r \ n”:

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

För ett gammalt Mac-baserat OS kan vi använda “ \ r”:

rhyme = line1 + "\r" + line2;

Vi har visat tre metoder för att lägga till en ny rad, men tyvärr är de plattformsberoende.

2.2. Använda plattformsoberoende linjeseparatorer

Vi kan använda systemdefinierade konstanter när vi vill att vår kod ska vara plattformsoberoende.

Använd till exempel System.lineSeparator () för att ge en linjeseparator:

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

Eller så kan vi också använda System.getProperty ("line.separator") :

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

2.3. Använda plattformsoberoende Newline-tecken

Även om linjeseparatorer ger plattformsoberoende tvingar de oss att sammanfoga våra strängar.

Om vi ​​använder något som System.out.printf eller String.format , kan den plattformsoberoende newline-karaktären, % n , användas direkt i en sträng :

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

Detta är detsamma som att inkludera System.lineSeparator () i vår sträng, men vi behöver inte dela strängen i flera delar.

3. Lägga till nya linjetecken på en HTML-sida

Antag att vi skapar en sträng som ingår i en HTML-sida. I så fall kan vi lägga till en HTML-bryttagg

Vi kan också använda Unicode-tecken "& # 13;" (Vagnretur) och “& # 10;” (Linjeflöde). Även om dessa karaktärer fungerar fungerar de inte precis som vi kan förvänta oss att de gör på alla plattformar. Istället är det bättre att använda

Dessutom kan vi använda “\ n” i vissa HTML-element för att bryta en linje.

Sammantaget är detta de tre metoderna för att bryta en rad i HTML. Vi kan bestämma vilken som ska användas beroende på HTML-taggen vi använder.

3.1. HTML Break Tag

Vi kan använda HTML-bryttagg

rhyme = line1 + "

" + line2;

De

tag för att bryta en rad fungerar i nästan alla HTML-element som ,

,

, Etc. Men notera att det inte fungerar i märka.

3.2. Newline-karaktär

Vi kan använda '\ n' för att bryta en rad om texten är innesluten i

 eller  märka:

rhyme = line1 + "\n" + line2;

3.3. Unicode-tecken

Slutligen kan vi använda Unicode-tecken "& # 13;" (Vagnretur) och “& # 10;” (Line Feed) för att bryta en linje. Till exempel i tagg kan vi använda någon av dessa:

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

För

 taggen fungerar båda raderna nedan:

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

4. Skillnaden mellan \ n och \ r

\ r och \ n är tecken betecknade med ASCII-värden på 13 (CR) respektive 10 (LF). De båda representerar en paus mellan två linjer , men operativsystem använder dem på olika sätt.

On Windows, a sequence of two characters is used to start a new line, CR immediately followed by LF. Conversely, on Unix-like systems, only LF is used.

When writing Java applications, we must pay attention to the line break characters we use because the applications will behave differently depending on the operating system they will run on.

The safest and most cross-compatible option is to use System.lineSeparator(). This way, we won't have to take the operating system into account.

5. Conclusion

In this article, we discussed how to add newline characters to a string in Java.

We also saw how to write platform independent code for a new line using System.lineSeparator() and System.getProperty(“line.separator”).

Slutligen slutade vi med hur man lägger till en ny rad om vi genererar en HTML-sida.

Det fullständiga genomförandet av den här artikeln finns på GitHub.