Java-tekenreeks met meerdere regels

1. Overzicht

Vanwege het feit dat er nog geen native multi-line string-klasse in Java is, is het een beetje lastig om multi-line strings te maken en te gebruiken.

In deze tutorial doorlopen we verschillende methoden om maak en gebruik tekenreeksen met meerdere regels in Java.

2. Verkrijgen van de lijnscheiding

Elk besturingssysteem kan zijn eigen manier hebben om nieuwe regels te definiëren en te herkennen. In Java is het heel eenvoudig om het regelscheidingsteken van het besturingssysteem te krijgen:

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

We gaan dit gebruiken nieuwe lijn in de volgende secties om tekenreeksen met meerdere regels te maken.

3. String-aaneenschakeling

String-aaneenschakeling is een eenvoudige native methode die kan worden gebruikt om strings met meerdere regels te maken:

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

Het gebruik van de + operator is een andere manier om hetzelfde te bereiken. Java-compilers vertalen concat () en de + operator op dezelfde manier:

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

4. String samenvoegen

Java 8 geïntroduceerd String # join, waarbij een scheidingsteken en enkele tekenreeksen als argumenten worden gebruikt. Het retourneert een laatste tekenreeks waarin alle invoerreeksen zijn samengevoegd met het scheidingsteken:

public String stringJoin () {return String.join (newLine, "Get busy living", "of", "Get busy met sterven.", "--Stephen King"); }

5. String Builder

StringBuilder is een helperklasse om te bouwen Draads. StringBuilder werd geïntroduceerd in Java 1.5 als vervanging voor StringBuffer. Het is een goede keuze voor het bouwen van enorme snaren in een lus:

public String stringBuilder () {retourneer nieuwe StringBuilder () .append ("Get busy living") .append (newLine) .append ("of") .append (newLine) .append ("get busy dying.") .append ( newLine) .append ("- Stephen King") .toString (); }

6. Tekenreeksschrijver

StringWriter is een andere methode die we kunnen gebruiken om een ​​string met meerdere regels te maken. We hebben niet nodig nieuwe lijn hier, omdat we PrintWriter. De println functie voegt automatisch nieuwe regels toe:

openbare String stringWriter () {StringWriter stringWriter = nieuwe StringWriter (); PrintWriter printWriter = nieuwe PrintWriter (stringWriter); printWriter.println ("Druk aan het leven"); printWriter.println ("of"); printWriter.println ("druk bezig met sterven."); printWriter.println ("- Stephen King"); return stringWriter.toString (); }

7. Guava-schrijnwerker

Het heeft weinig zin om een ​​externe bibliotheek alleen voor een eenvoudige taak als deze te gebruiken, maar als het project de bibliotheek al voor andere doeleinden gebruikt, kunnen we deze gebruiken. De Guava-bibliotheek van Google is bijvoorbeeld erg populair. Guava heeft een Schrijnwerker klasse die in staat is om meerregelige strings te bouwen:

public String guavaJoiner () {retourneer Joiner.on (newLine) .join (ImmutableList.of ("Druk aan het leven", "of", "druk aan het sterven.", "--Stephen King")); }

8. Laden vanuit een bestand

Java leest bestanden precies zoals ze zijn. Dit betekent dat als we een string met meerdere regels in een tekstbestand hebben, we dezelfde string hebben als we het bestand lezen. Er zijn veel manieren om in Java uit een bestand te lezen.

Het is eigenlijk een goede gewoonte om lange strings van code te scheiden:

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

9. IDE-functies gebruiken

Veel moderne IDE's ondersteunen kopiëren / plakken met meerdere regels. Eclipse en IntelliJ IDEA zijn voorbeelden van dergelijke IDE's. We kunnen eenvoudig onze meerregelige tekenreeks kopiëren en tussen twee dubbele aanhalingstekens in deze IDE's plakken.

Het is duidelijk dat deze methode niet werkt voor het maken van tekenreeksen in runtime, maar het is een snelle en gemakkelijke manier om een ​​tekenreeks met meerdere regels te krijgen.

10. Conclusie

In deze tutorial hebben we verschillende methoden geleerd om meerregelige strings in Java te bouwen.

Het goede nieuws is dat Java 13 native ondersteuning biedt voor strings met meerdere regels via tekstblokken. Onnodig te zeggen dat alle bovenstaande methoden nog steeds werken in Java 13.

De code voor alle methoden in dit artikel is beschikbaar op Github.