Vue d’ensemble
Le formatage de la chaîne de caractères et la génération d’une sortie texte surviennent souvent pendant la programmation. Dans de nombreux cas, il est nécessaire d’ajouter une nouvelle ligne à une chaîne pour formater la sortie.
Discutons de la façon d’utiliser les caractères de nouvelle ligne.
Lecture complémentaire:
Vérification des chaînes vides ou vides en Java
Vérifier si une chaîne de caractères contient une sous-chaîne
Ajouter des caractères de nouvelle ligne dans une chaîne
Les systèmes d’exploitation ont des caractères spéciaux dénotant le début d’une nouvelle ligne. Par exemple, sous Linux, une nouvelle ligne est dénotée par « \n », également appelé Line Feed. Sous Windows, une nouvelle ligne est dénotée par « \r\n », parfois appelé retour chariot et saut de ligne, ou CRLF.
Ajouter une nouvelle ligne en Java est aussi simple que d’inclure « \n » , « \r » ou « \r\n » à la fin de notre chaîne.
2.1. Utilisation des sauts de ligne CRLF
Pour cet exemple, nous voulons créer un paragraphe en utilisant deux lignes de texte. Plus précisément, nous voulons que la ligne2 apparaisse dans une nouvelle ligne après la ligne1.
Pour un système d’exploitation basé sur Unix/Linux/New Mac, nous pouvons utiliser « \n »:
String line1 = "Humpty Dumpty sat on a wall.";String line2 = "Humpty Dumpty had a great fall.";String rhyme = line1 + "\n" + line2;
Si nous sommes sur un système d’exploitation basé sur Windows, nous pouvons utiliser « \r\n » :
rhyme = line1 + "\r\n" + line2;
Pour un ancien système d’exploitation basé sur Mac, nous pouvons utiliser « \r »:
rhyme = line1 + "\r" + line2;
Nous avons démontré trois méthodes pour ajouter une nouvelle ligne, mais malheureusement, elles dépendent de la plateforme.
2.2. Utilisation de séparateurs de ligne indépendants de la plateforme
Nous pouvons utiliser des constantes définies par le système lorsque nous voulons que notre code soit indépendant de la plateforme.
Par exemple, utiliser System.lineSeparator() pour donner un séparateur de ligne:
rhyme = line1 + System.lineSeparator() + line2;
Ou nous pourrions également utiliser System.getProperty(« line.separator »):
rhyme = line1 + System.getProperty("line.separator") + line2;
2.3. Utilisation des caractères de nouvelle ligne indépendants de la plateforme
Bien que les séparateurs de ligne assurent l’indépendance de la plateforme, ils nous obligent à concaténer nos chaînes de caractères.
Si nous utilisons quelque chose comme System.out.printf ou String.format, alors le caractère de nouvelle ligne indépendant de la plateforme, %n, peut être utilisé directement à l’intérieur d’une chaîne de caractères :
rhyme = "Humpty Dumpty sat on a wall.%nHumpty Dumpty had a great fall.";
Ceci revient à inclure System.lineSeparator() à l’intérieur de notre chaîne de caractères, mais nous n’avons pas besoin de diviser la chaîne en plusieurs parties.
Ajouter des caractères de nouvelle ligne dans une page HTML
Supposons que nous créons une chaîne de caractères qui fait partie d’une page HTML. Dans ce cas, nous pouvons ajouter une balise HTML break <br>.
Nous pouvons également utiliser les caractères Unicode « & #13 ; » (Carriage Return) et « & #10 ; » (Line Feed). Bien que ces caractères fonctionnent, ils ne fonctionnent pas exactement comme nous pourrions l’attendre sur toutes les plateformes. Au lieu de cela, il est préférable d’utiliser <br> pour les sauts de ligne.
En outre, nous pouvons utiliser « \n » dans certains éléments HTML pour briser une ligne.
Dans l’ensemble, ce sont les trois méthodes pour briser une ligne en HTML. Nous pouvons décider laquelle utiliser en fonction de la balise HTML que nous utilisons.
3.1. Balise HTML Break
Nous pouvons utiliser la balise HTML break <br> pour briser une ligne :
rhyme = line1 + "<br>" + line2;
La balise <br> pour briser une ligne fonctionne dans presque tous les éléments HTML comme <body><p><pre>, etc. Notez toutefois qu’elle ne fonctionne pas dans la balise <textarea>.
3.2. Caractère de nouvelle ligne
Nous pouvons utiliser ‘\n’ pour rompre une ligne si le texte est enfermé dans la balise <pre> ou <textarea> :
rhyme = line1 + "\n" + line2;
3.3. Caractères Unicode
Enfin, nous pouvons utiliser les caractères Unicode « & #13 ; » (Carriage Return) et « & #10 ; » (Line Feed) pour rompre une ligne. Par exemple, dans la balise <textarea>, nous pouvons utiliser l’un ou l’autre de ces éléments :
rhyme = line1 + "" + line2;rhyme = line1 + "" + line2;
Pour la balise <pre>, les deux lignes ci-dessous fonctionneront :
rhyme = line1 + "" + line2;rhyme = line1 + "" + line2;
La différence entre \n et \r
Le \r et le \n sont des caractères désignés par les valeurs ASCII de 13 (CR) et 10 (LF), respectivement. Ils représentent tous deux une rupture entre deux lignes, mais les systèmes d’exploitation les utilisent différemment.
Sur Windows, une séquence de deux caractères est utilisée pour commencer une nouvelle ligne, CR immédiatement suivi de LF. À l’inverse, sur les systèmes de type Unix, seul LF est utilisé.
Lorsque nous écrivons des applications Java, nous devons faire attention aux caractères de retour à la ligne que nous utilisons car les applications se comporteront différemment selon le système d’exploitation sur lequel elles seront exécutées.
L’option la plus sûre et la plus compatible entre les systèmes est d’utiliser System.lineSeparator(). De cette façon, nous n’aurons pas à tenir compte du système d’exploitation.
Conclusion
Dans cet article, nous avons discuté de la façon d’ajouter des caractères de nouvelle ligne à une chaîne de caractères en Java.
Nous avons également vu comment écrire un code indépendant de la plateforme pour une nouvelle ligne en utilisant System.lineSeparator() et System.getProperty(« line.separator »).
Finalement, nous avons terminé par la façon d’ajouter une nouvelle ligne dans le cas où nous générons une page HTML.
L’implémentation complète de cet article se trouve sur GitHub.
Démarrez avec Spring 5 et Spring Boot 2, grâce au cours Learn Spring:
>> VERIFIER LE COURS
.