Aggiunta di un carattere di nuova riga a una stringa in Java

1. Panoramica

La formattazione delle stringhe e la generazione dell'output di testo spesso si verificano durante la programmazione. In molti casi, è necessario aggiungere una nuova riga a una stringa per formattare l'output.

Parliamo di come utilizzare i caratteri di nuova riga.

2. Aggiunta di caratteri di nuova riga in una stringa

I sistemi operativi hanno caratteri speciali che indicano l'inizio di una nuova riga. Ad esempio, in Linux una nuova riga è indicata con " \ n" , chiamata anche Line Feed . In Windows, una nuova riga è indicata con " \ r \ n" , a volte chiamato ritorno a capo e avanzamento riga , o CRLF .

Aggiungere una nuova riga in Java è semplice come includere " \ n" , " \ r" o " \ r \ n" alla fine della nostra stringa.

2.1. Utilizzo delle interruzioni di riga CRLF

Per questo esempio, vogliamo creare un paragrafo utilizzando due righe di testo. In particolare, vogliamo che riga2 appaia in una nuova riga dopo riga1 .

Per un sistema operativo Unix / Linux / New Mac possiamo usare " \ n":

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

Se siamo su un sistema operativo basato su Windows, possiamo usare " \ r \ n":

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

Per un vecchio sistema operativo basato su Mac, possiamo usare " \ r":

rhyme = line1 + "\r" + line2;

Abbiamo dimostrato tre metodi per aggiungere una nuova riga, ma sfortunatamente dipendono dalla piattaforma.

2.2. Utilizzo di separatori di linea indipendenti dalla piattaforma

Possiamo usare costanti definite dal sistema quando vogliamo che il nostro codice sia indipendente dalla piattaforma.

Ad esempio, utilizzando System.lineSeparator () per fornire un separatore di riga:

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

Oppure potremmo anche usare System.getProperty ("line.separator") :

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

2.3. Utilizzo di caratteri di nuova riga indipendenti dalla piattaforma

Sebbene i separatori di riga forniscano indipendenza dalla piattaforma, ci costringono a concatenare le nostre stringhe.

Se stiamo usando qualcosa come System.out.printf o String.format , allora il carattere di nuova riga indipendente dalla piattaforma, % n , può essere usato direttamente all'interno di una stringa :

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

È lo stesso dell'inclusione di System.lineSeparator () nella nostra stringa, ma non è necessario dividere la stringa in più parti.

3. Aggiunta di caratteri di nuova riga in una pagina HTML

Supponiamo di creare una stringa che fa parte di una pagina HTML. In tal caso, possiamo aggiungere un tag di interruzione HTML

Possiamo anche utilizzare i caratteri Unicode "& # 13;" (Ritorno a capo) e "& # 10;" (Avanzamento riga). Sebbene questi personaggi funzionino, non funzionano esattamente come ci aspetteremmo che funzionassero su tutte le piattaforme. Invece, è meglio usare

Inoltre, possiamo usare "\ n" in alcuni elementi HTML per interrompere una riga.

In generale, questi sono i tre metodi per interrompere una riga in HTML. Possiamo decidere quale utilizzare a seconda del tag HTML che stiamo utilizzando.

3.1. Tag di interruzione HTML

Possiamo usare tag di interruzione HTML

rhyme = line1 + "

" + line2;

Il

tag per interrompere una riga funziona in quasi tutti gli elementi HTML come ,

,

, etc. However, note that it does not work in the  tag.

3.2. Newline Character

We can use ‘\n' to break a line if text is enclosed in

 or  tag:

rhyme = line1 + "\n" + line2;

3.3. Unicode Characters

Finally, we can use Unicode characters “& #13;” (Carriage Return) and “& #10;” (Line Feed) to break a line. For example, in the tag we can use either of these:

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

For the

 tag, both of the lines below will work:

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

4. The Difference Between \n and \r

\r and \n are characters denoted with ASCII values of 13 (CR) and 10 (LF), respectively. Theyboth represent a break between two lines, but operating systems use them differently.

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”).

Finally, we wrapped up with how to add a new line in case we are generating an HTML page.

The full implementation of this article can be found over on GitHub.