Chaîne multiligne Java

1. Vue d'ensemble

En raison du fait qu'il n'y a pas encore de classe de chaînes multi-lignes native en Java, il est un peu difficile de créer et d'utiliser des chaînes multi-lignes.

Dans ce didacticiel, nous passons en revue plusieurs méthodes pour créer et utiliser des chaînes multilignes en Java .

2. Obtenir le séparateur de ligne

Chaque système d'exploitation peut avoir sa propre façon de définir et de reconnaître les nouvelles lignes. En Java, il est très facile d'obtenir le séparateur de ligne du système d'exploitation:

String newLine = System.getProperty("line.separator");

Nous allons utiliser cette newLine dans les sections suivantes pour créer des chaînes multilignes.

3. Concaténation de chaînes

La concaténation de chaînes est une méthode native simple qui peut être utilisée pour créer des chaînes multilignes:

public String stringConcatenation() { return "Get busy living" .concat(newLine) .concat("or") .concat(newLine) .concat("get busy dying.") .concat(newLine) .concat("--Stephen King"); }

L'utilisation de l'opérateur + est une autre façon de réaliser la même chose. Les compilateurs Java traduisent concat () et l'opérateur + de la même manière:

public String stringConcatenation() { return "Get busy living" + newLine + "or" + newLine + "get busy dying." + newLine + "--Stephen King"; }

4. Jointure de chaîne

Java 8 a introduit la jointure String # , qui prend un délimiteur avec quelques chaînes comme arguments. Il renvoie une chaîne finale dont toutes les chaînes d'entrée sont jointes avec le délimiteur:

public String stringJoin() { return String.join(newLine, "Get busy living", "or", "get busy dying.", "--Stephen King"); }

5. Générateur de chaînes

StringBuilder est une classe d'assistance pour construire des String s. StringBuilder a été introduit dans Java 1.5 en remplacement de StringBuffer . C'est un bon choix pour construire d'énormes cordes en boucle:

public String stringBuilder() { return new StringBuilder() .append("Get busy living") .append(newLine) .append("or") .append(newLine) .append("get busy dying.") .append(newLine) .append("--Stephen King") .toString(); }

6. Rédacteur de chaîne

StringWriter est une autre méthode que nous pouvons utiliser pour créer une chaîne multiligne. Nous n'avons pas besoin de newLine ici, car nous utilisons PrintWriter . La fonction println ajoute automatiquement de nouvelles lignes:

public String stringWriter() { StringWriter stringWriter = new StringWriter(); PrintWriter printWriter = new PrintWriter(stringWriter); printWriter.println("Get busy living"); printWriter.println("or"); printWriter.println("get busy dying."); printWriter.println("--Stephen King"); return stringWriter.toString(); }

7. Menuisier de goyave

Utiliser une bibliothèque externe juste pour une tâche simple comme celle-ci n'a pas beaucoup de sens, cependant, si le projet utilise déjà la bibliothèque à d'autres fins, nous pouvons l'utiliser. Par exemple, la bibliothèque Guava de Google est très populaire. Guava a une classe Joiner qui est capable de créer des chaînes multilignes:

public String guavaJoiner() { return Joiner.on(newLine).join(ImmutableList.of("Get busy living", "or", "get busy dying.", "--Stephen King")); }

8. Chargement à partir d'un fichier

Java lit les fichiers exactement tels qu'ils sont. Cela signifie que si nous avons une chaîne multiligne dans un fichier texte, nous aurons la même chaîne lorsque nous lirons le fichier. Il existe de nombreuses façons de lire un fichier en Java.

En fait, c'est une bonne pratique de séparer les longues chaînes du code:

public String loadFromFile() throws IOException { return new String(Files.readAllBytes(Paths.get("src/main/resources/stephenking.txt"))); }

9. Utilisation des fonctionnalités IDE

De nombreux IDE modernes prennent en charge le copier / coller sur plusieurs lignes. Eclipse et IntelliJ IDEA sont des exemples de tels IDE. Nous pouvons simplement copier notre chaîne multiligne et la coller à l'intérieur de deux guillemets doubles dans ces IDE.

De toute évidence, cette méthode ne fonctionne pas pour la création de chaîne au moment de l'exécution, mais c'est un moyen rapide et facile d'obtenir une chaîne multiligne.

10. Conclusion

Dans ce didacticiel, nous avons appris plusieurs méthodes pour créer des chaînes multilignes en Java.

La bonne nouvelle est que Java 13 aura un support natif pour les chaînes multilignes via des blocs de texte. Inutile de dire que toutes les méthodes ci-dessus fonctionneront toujours dans Java 13.

Le code de toutes les méthodes de cet article est disponible à l'adresse over sur Github.