Java többsoros karakterlánc

1. Áttekintés

Annak a ténynek köszönhetően, hogy a Java-ban még nincs natív többsoros karakterlánc-osztály, kissé trükkös a többsoros húrok létrehozása és használata.

Ebben az oktatóanyagban számos módszert ismertetünk többsoros karakterláncokat készíthet és használhat a Java-ban.

2. A vonalválasztó beszerzése

Minden operációs rendszernek megvan a maga módja az új vonalak meghatározására és felismerésére. A Java-ban nagyon egyszerű beszerezni az operációs rendszer sorelválasztóját:

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

Ezt fogjuk használni új sor a következő szakaszokban többsoros húrok létrehozásához.

3. Vonós összefűzés

A húrok összefűzése egy egyszerű natív módszer, amely felhasználható többsoros húrok létrehozására:

public String stringConcatenation () {return "Foglalkozzon élettel" .concat (newLine) .concat ("vagy") .concat (newLine) .concat ("foglalj el haldoklást.") .concat (newLine) .concat ("- Stephen King"); }

A + operátor használata egy másik módszer ugyanazon cél elérésére. A Java fordítók lefordítják concat () és a + operátor ugyanúgy:

public String stringConcatenation () {return "Elfoglalt élet" + newLine + "vagy" + newLine + "elfoglalva meghal." + newLine + "--Stephen King"; }

4. Vonós csatlakozás

Bemutatták a Java 8-at # Karakterlánc csatlakozás, amely elválasztót vesz fel, néhány argumentummal együtt argumentumként. Visszaad egy végső karakterláncot, amelyben az összes bemeneti karakterlánc össze van kapcsolva a határolóval:

public String stringJoin () {return String.join (newLine, "Get elfoglalt élet", "vagy", "elfoglalt haldoklás.", "--Stephen King"); }

5. Húrépítő

StringBuilder egy segítő osztály építeni Húrs. StringBuilder a Java 1.5-be került bevezetésre StringBuffer. Jó választás hatalmas húrok hurokban történő felépítéséhez:

public String stringBuilder () {return new StringBuilder () .append ("Elfoglalt élet") .append (newLine) .append ("vagy") .append (newLine) .append ("elfoglalt haldoklás.") .append ( newLine) .append ("- Stephen King") .toString (); }

6. Vonós író

StringWriter egy másik módszer, amelyet felhasználhatunk egy többsoros karakterlánc létrehozására. Nincs szükségünk rá új sor itt, mert használjuk PrintWriter. A println függvény automatikusan új sorokat ad hozzá:

public String stringWriter () {StringWriter stringWriter = új StringWriter (); PrintWriter printWriter = új PrintWriter (stringWriter); printWriter.println ("Legyen elfoglalt az életben"); printWriter.println ("vagy"); printWriter.println ("elfoglalj meghalni."); printWriter.println ("- Stephen King"); return stringWriter.toString (); }

7. Guava asztalos

Ha külső könyvtárat használunk csak egy ilyen egyszerű feladatra, akkor nincs sok értelme, azonban ha a projekt már más célokra használja a könyvtárat, akkor felhasználhatjuk. Például a Google guavai könyvtára nagyon népszerű. Guava-nak van egy Asztalos osztály, amely képes többsoros húrok készítésére:

public String guavaJoiner () {return Joiner.on (newLine) .join (ImmutableList.of ("Foglalkozzon élettel", "vagy", "foglaljon el haldoklást.", "--Stephen King")); }

8. Betöltés fájlból

A Java pontosan úgy olvassa a fájlokat, ahogy vannak. Ez azt jelenti, hogy ha többsoros karakterlánc van egy szövegfájlban, akkor ugyanaz lesz a karakterlánc, amikor elolvassuk a fájlt. Nagyon sokféleképpen lehet olvasni egy Java fájlból.

Valójában jó gyakorlat a hosszú karakterláncok elválasztása a kódtól:

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

9. Az IDE szolgáltatások használata

Sok modern IDE támogatja a többsoros másolást / beillesztést. Az Eclipse és az IntelliJ IDEA példák az ilyen IDE-kre. Egyszerűen másolhatjuk a többsoros karakterláncunkat, és beilleszthetünk két dupla idézőjelet ezekbe az IDE-be.

Nyilvánvaló, hogy ez a módszer nem működik a karakterláncok futtatásakor, de gyors és egyszerű módja a többsoros karakterlánc megszerzésének.

10. Következtetés

Ebben az oktatóanyagban számos módszert tanultunk meg a többsoros karakterláncok Java-ban történő létrehozására.

Jó hír, hogy a Java 13 natív támogatást nyújt a többsoros karakterláncokhoz a Text Blocks-on keresztül. Mondanom sem kell, hogy a fenti módszerek továbbra is működni fognak a Java 13-ban.

Az ebben a cikkben szereplő összes módszer kódja elérhető a Github oldalon.