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.