Tömb karakterlánc konverziók

1. Áttekintés

Ebben a rövid oktatóanyagban a stringek vagy egészek tömbjének karakterláncokká alakítását és visszaállítását fogjuk megvizsgálni.

Ezt a gyakran használt könyvtárakból származó vanília Java és Java segédprogramokkal érhetjük el.

2. Konvertálja a tömböt karakterláncra

Néha egy sor karakterláncot vagy egészet kell stringekké konvertálnunk, de sajnos nincs közvetlen módszer ennek az átalakításnak a végrehajtására.

A. Alapértelmezett megvalósítása toString () metódus egy tömbön hasonlót ad vissza Ljava.lang.String; @ 74a10858 amely csak az objektum típusáról és kivonatkódjáról tájékoztat bennünket.

Azonban a java.util.A Arrays a hasznossági osztály támogatja a tömb és karakterlánc manipulációt, beleértve a toString () módszer a tömbökhöz.

Arrays.toString () karakterláncot ad vissza a bemeneti tömb tartalmával. A létrehozott új karakterlánc vesszővel elválasztott lista a tömb elemeiről, szögletes zárójelekkel („[]”) körülvéve:

Karakterlánc [] strArray = {"egy", "kettő", "három"}; String joinString = Tömbök.toString (strArray); assertEquals ("[egy, kettő, három]", csatlakozott a Stringhez);
int [] intArray = {1,2,3,4,5}; joinString = Tömbök.toString (intArray); assertEquals ("[1, 2, 3, 4, 5]", csatlakozott a Stringhez);

És bár nagyszerű, hogy a Arrays.toString (int []) metódus olyan szépen begombolja ezt a feladatot számunkra, hasonlítsuk össze azokat a különböző módszerekkel, amelyeket egyedül is megvalósíthatunk.

2.1. StringBuilder.append ()

Először nézzük meg, hogyan lehet ezt az átalakítást végrehajtani StringBuilder.append ():

Karakterlánc [] strArray = {"Konvertálás", "Tömb", "With", "Java"}; StringBuilder stringBuilder = new StringBuilder (); for (int i = 0; i <strArray.length; i ++) {stringBuilder.append (strArray [i]); } Karakterlánc csatlakozottString = stringBuilder.toString (); assertEquals ("ConvertArrayWithJava", joinString);

Ezenkívül egész számok tömbjének átalakításához ugyanazt a megközelítést használhatjuk, de ehelyett hívhatunk Integer.valueOf (intArray [i]) amikor csatlakozik a mi StringBuilder.

2.2. Java Streams API

A Java 8 és újabb verziók kínálják a String.join () módszer, amely új sztringet állít elő az elemek összekapcsolásával és elválasztásával a megadott elválasztóval, esetünkben csak üres karakterlánccal:

String joinString = String.join ("", új String [] {"Convert", "With", "Java", "Stream"}); assertEquals ("ConvertWithJavaStreams", joinString);

Ezenkívül használhatjuk a Collectors.joining () metódust a Java Streams API-ból, amely összekapcsolja a Folyam ugyanabban a sorrendben, mint a forrás tömb:

String joinString = Tömbök .stream (új karakterlánc [] {"Convert", "With", "Java", "Streams"}) .collect (Collectors.joining ()); assertEquals ("ConvertWithJavaStreams", joinString);

2.3. StringUtils.join ()

Az Apache Commons Lang pedig soha nem maradhat ki az ilyen feladatokból.

A StringUtils osztályban több van StringUtils.join () metódusok, amelyek felhasználásával a karakterláncok tömbjét egyetlen stringre változtathatja:

String joinString = StringUtils.join (új String [] {"Convert", "With", "Apache", "Commons"}); assertEquals ("ConvertWithApacheCommons", joinString);

2.4. Joiner.join ()

És hogy ne legyőzzem, Gujávafa ugyanezt befogadja annak Asztalos osztály. A Asztalos osztály folyékony API-t kínál, és egy maroknyi segítő módszert kínál az adatok összekapcsolására.

Például felvehetünk egy elválasztót vagy kihagyhatunk null értékeket:

Karakterlánc csatlakozottString = Joiner.on ("") .skipNulls () .join (új karakterlánc [] {"Konvertálás", "With", "Guava", null}); assertEquals ("ConvertWithGuava", joinString);

3. Konvertálja a karakterláncot stringek tömbjévé

Hasonlóképpen, néha meg kell osztanunk egy karakterláncot tömbre, amely a bemeneti karakterláncok részhalmazát tartalmazza a megadott elválasztóval elválasztva, nézzük meg, hogyan is tudjuk ezt megtenni.

3.1. String.split ()

Először is kezdjük azzal, hogy osszuk el a szóközöket a String.split () módszer elválasztó nélkül:

Karakterlánc [] strArray = "loremipsum" .split ("");

Ami előállítja:

["l", "o", "r", "e", "m", "i", "p", "s", "u", "m"]

3.2. StringUtils.split ()

Másodszor nézzük meg újra a StringUtils osztály az Apache Commons Lang könyvtárából.

A string objektumokon található számos null-safe módszer között megtalálhatjuk StringUtils.split (). Alapértelmezés szerint egy szóköz elválasztót feltételez:

String [] split = StringUtils.split ("lorem ipsum dolor sit amet");

Ennek eredményeként:

["Lorem ipsum dolor sit amet"]

De, ha akarunk, megadhatunk határolót is.

3.3. Splitter.split ()

Végül használhatjuk is Gujávafa azzal Hasító folyékony API:

List resultList = Splitter.on ('') .trimResults () .omitEmptyStrings () .splitToList ("lorem ipsum dolor sit amet"); Karakterlánc [] strArray = resultList.toArray (új String [0]);

Ami generálja:

["Lorem ipsum dolor sit amet"]

4. Következtetés

Ebben a cikkben bemutattuk, hogyan lehet egy tömböt stringgé és vissza konvertálni a Java és a népszerű segédkönyvtárak segítségével.

Természetesen ezeknek a példáknak és kódrészleteknek a megvalósítása megtalálható a GitHubon.