Viacriadkový reťazec Java

1. Prehľad

Vzhľadom na to, že v Jave zatiaľ neexistuje natívna trieda viacriadkových reťazcov, je trochu zložitejšie vytvárať a využívať viacriadkové reťazce.

V tomto tutoriáli prechádzame niekoľkými metódami až po vytvárať a používať viacriadkové reťazce v prostredí Java.

2. Získanie oddeľovača liniek

Každý operačný systém môže mať svoj vlastný spôsob definovania a rozpoznávania nových riadkov. V prostredí Java je veľmi ľahké získať oddeľovač riadkov operačného systému:

Reťazec newLine = System.getProperty ("line.separator");

Toto použijeme Nový riadok v nasledujúcich častiach vytvorte viacriadkové reťazce.

3. Zreťazenie reťazca

Zreťazenie reťazcov je jednoduchá natívna metóda, ktorú je možné použiť na vytvorenie viacriadkových reťazcov:

public String stringConcatenation () {návrat "Nainštalujte si život" .concat (newLine) .concat ("alebo") .concat (newLine) .concat ("zaneprázdnený umieraním.") .concat (newLine) .concat ("- Stephen King “); }

Používanie operátora + je ďalším spôsobom, ako dosiahnuť to isté. Prekladače Java prekladajú concat () a operátor + rovnakým spôsobom:

public String stringConcatenation () {návrat „Zaneprázdnený život“ + newLine + “alebo„ + newLine + “zaneprázdnený umieraním.“ + newLine + "--Stephen King"; }

4. Pripojte sa k reťazcu

Bola predstavená Java 8 Reťazec # pripojiť sa, ktorý berie ako argument oddeľovač spolu s niektorými reťazcami. Vráti konečný reťazec, ktorý má všetky vstupné reťazce spojené s oddeľovačom:

public String stringJoin () {return String.join (newLine, "Get Busy Living", "alebo", "Busy Dying.", "- Stephen King"); }

5. Tvorca reťazcov

StringBuilder je trieda pomocníka na stavanie Strings. StringBuilder bol predstavený v prostredí Java 1.5 ako náhrada za StringBuffer. Je to dobrá voľba pre vytváranie obrovských reťazcov v slučke:

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. Spisovateľ šnúrok

StringWriter je ďalšia metóda, ktorú môžeme použiť na vytvorenie viacriadkového reťazca. Nepotrebujeme Nový riadok tu, pretože používame PrintWriter. The println funkcia automaticky pridáva nové riadky:

public String stringWriter () {StringWriter stringWriter = nový StringWriter (); PrintWriter printWriter = nový PrintWriter (stringWriter); printWriter.println ("Zamestnajte sa"); printWriter.println ("alebo"); printWriter.println ("zaneprázdnený umieraním."); printWriter.println ("- Stephen King"); return stringWriter.toString (); }

7. Guava Joiner

Používanie externej knižnice iba na jednoduchú úlohu, ako je táto, nemá veľký zmysel, ak však knižnicu projekt už používa na iné účely, môžeme ju využiť. Napríklad knižnica Guava spoločnosti Google je veľmi populárna. Guava má Stolár trieda, ktorá je schopná zostaviť viacriadkové reťazce:

public String guavaJoiner () {return Joiner.on (newLine) .join (ImmutableList.of ("Get Busy Living", "alebo", "Busy Dying.", "- Stephen King")); }

8. Načítanie zo súboru

Java číta súbory presne také, aké sú. To znamená, že ak máme v textovom súbore viacriadkový reťazec, pri načítaní súboru budeme mať rovnaký reťazec. Existuje mnoho spôsobov, ako čítať zo súboru v prostredí Java.

V skutočnosti je dobrým zvykom oddeliť dlhé reťazce od kódu:

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

9. Používanie funkcií IDE

Mnoho moderných IDE podporuje viacriadkové kopírovanie / vkladanie. Eclipse a IntelliJ IDEA sú príkladmi takýchto IDE. Môžeme jednoducho skopírovať náš viacriadkový reťazec a vložiť ich do dvoch dvojitých úvodzoviek v týchto IDE.

Je zrejmé, že táto metóda nefunguje na vytvorenie reťazca za behu, ale je to rýchly a ľahký spôsob, ako získať viacriadkový reťazec.

10. Záver

V tomto tutoriáli sme sa naučili niekoľko metód na zostavenie viacriadkových reťazcov v Jave.

Dobrou správou je, že Java 13 bude mať natívnu podporu pre viacriadkové reťazce prostredníctvom textových blokov. Netreba dodávať, že všetky vyššie uvedené metódy budú v Jave 13 stále fungovať.

Kód pre všetky metódy v tomto článku je k dispozícii na stránkach Github.


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