Java flerlinjestreng

1. Oversikt

På grunn av det faktum at det ikke er noen native multi-line streng klasse i Java ennå, er det litt vanskelig å lage og bruke multi-line strenger.

I denne opplæringen går vi gjennom flere metoder for å lage og bruke strenger med flere linjer i Java.

2. Få linjeskilleren

Hvert operativsystem kan ha sin egen måte å definere og gjenkjenne nye linjer på. I Java er det veldig enkelt å få linjeskilleren til operativsystemet:

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

Vi skal bruke dette ny linje i de følgende seksjonene for å lage strenger med flere linjer.

3. Strengsammenkobling

Strengsammenkobling er en enkel innfødt metode som kan brukes til å lage strenger med flere linjer:

public String stringConcatenation () {return "Bli opptatt med å leve" .concat (newLine) .concat ("eller") .concat (newLine) .concat ("bli opptatt med å dø.") .concat (newLine) .concat ("- Stephen king"); }

Å bruke + -operatøren er en annen måte å oppnå det samme på. Java-kompilatorer oversettes concat () og + -operatøren på samme måte:

public String stringConcatenation () {return "Bli opptatt med å leve" + newLine + "eller" + newLine + "bli opptatt med å dø." + newLine + "--Stephen King"; }

4. String Join

Java 8 introdusert Streng # bli med, som tar en avgrenser sammen med noen strenger som argumenter. Den returnerer en endelig streng som har alle inngangsstrenger sammen med avgrenseren:

public String stringJoin () {return String.join (newLine, "Bli opptatt med å leve", "eller", "bli opptatt med å dø.", "--Stephen King"); }

5. String Builder

StringBuilder er en hjelperklasse å bygge Strings. StringBuilder ble introdusert i Java 1.5 som erstatning for StringBuffer. Det er et godt valg for å bygge store strenger i en løkke:

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. String Writer

StringWriter er en annen metode som vi kan bruke til å opprette en streng med flere linjer. Vi trenger ikke ny linje her, fordi vi bruker PrintWriter. De utskrift funksjonen legger automatisk til nye linjer:

public String stringWriter () {StringWriter stringWriter = new StringWriter (); PrintWriter printWriter = ny PrintWriter (stringWriter); printWriter.println ("Bli opptatt med å leve"); printWriter.println ("eller"); printWriter.println ("bli opptatt med å dø."); printWriter.println ("- Stephen King"); return stringWriter.toString (); }

7. Guava Snekker

Å bruke et eksternt bibliotek bare for en enkel oppgave som dette gir ikke mye mening, men hvis prosjektet allerede bruker biblioteket til andre formål, kan vi bruke det. For eksempel er Googles Guava-bibliotek veldig populært. Guava har en Snekker klasse som er i stand til å bygge streng med flere linjer:

public String guavaJoiner () {return Joiner.on (newLine) .join (ImmutableList.of ("Bli opptatt med å leve", "eller", "bli opptatt med å dø.", "--Stephen King")); }

8. Laster fra en fil

Java leser filer nøyaktig slik de er. Dette betyr at hvis vi har en streng med flere linjer i en tekstfil, vil vi ha samme streng når vi leser filen. Det er mange måter å lese fra en fil i Java.

Egentlig er det en god praksis å skille lange strenger fra kode:

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

9. Bruke IDE-funksjoner

Mange moderne IDEer støtter kopiering / liming av flere linjer. Eclipse og IntelliJ IDEA er eksempler på slike IDEer. Vi kan ganske enkelt kopiere strengen med flere linjer og lime inn i to doble anførselstegn i disse IDE-ene.

Åpenbart fungerer denne metoden ikke for strengoppretting i løpetid, men det er en rask og enkel måte å få en streng med flere linjer.

10. Konklusjon

I denne veiledningen lærte vi flere metoder for å bygge streng med flere linjer i Java.

Den gode nyheten er at Java 13 vil ha innfødt støtte for flerlinjestrenger via tekstblokker. Unødvendig å si, vil alle metodene ovenfor fortsatt fungere i Java 13.

Koden for alle metodene i denne artikkelen er tilgjengelig på Github.


$config[zx-auto] not found$config[zx-overlay] not found