Question

Comment obtenir une nouvelle ligne dépendante de la plate-forme en Java? Je ne peux pas utiliser " \ n " partout.

Était-ce utile?

La solution

En plus de la propriété line.separator, si vous utilisez java 1.5 ou une version ultérieure et que String.format (ou d'autres méthodes de mise en forme ), vous pouvez utiliser % n comme dans

Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY%n", c); 
//Note `%n` at end of line                                  ^^

String s2 = String.format("Use %%n as a platform independent newline.%n"); 
//         %% becomes %        ^^
//                                        and `%n` becomes newline   ^^

Voir API Java 1.8 pour Formater pour plus de détails.

Autres conseils

Java 7 dispose désormais d'un System.lineSeparator () .

Vous pouvez utiliser

System.getProperty("line.separator");

pour obtenir le séparateur de ligne

Si vous essayez d'écrire une nouvelle ligne dans un fichier, vous pouvez simplement utiliser newLine () .

Cela est également possible: String.format ("% n") .

Ou String.format ("% n"). intern () pour économiser des octets.

La bibliothèque commons-lang a un champ constant disponible appelé SystemUtils.LINE_SEPARATOR

Si vous écrivez dans un fichier en utilisant une instance BufferedWriter , utilisez la méthode newLine () de cette instance. Il fournit un moyen indépendant de la plate-forme pour écrire la nouvelle ligne dans un fichier.

StringBuilder newLine=new StringBuilder();
newLine.append("abc");
newline.append(System.getProperty("line.separator"));
newline.append("def");
String output=newline.toString();

Le fragment de code ci-dessus aura deux chaînes séparées par une nouvelle ligne, quelles que soient les plates-formes.

Évitez d'ajouter des chaînes à l'aide de Chaîne + Chaîne, etc., utilisez plutôt StringBuilder.

String separator = System.getProperty( "line.separator" );
StringBuilder lines = new StringBuilder( line1 );
lines.append( separator );
lines.append( line2 );
lines.append( separator );
String result = lines.toString( );
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top