Konverzie reťazca Array to String

1. Prehľad

V tomto krátkom návode sa pozrieme na prevod poľa reťazcov alebo celých čísel na reťazec a späť.

Toho môžeme dosiahnuť pomocou vanilkovej Java a tried obslužných programov Java z bežne používaných knižníc.

2. Konvertujte pole na reťazec

Niekedy potrebujeme previesť pole reťazcov alebo celých čísel na reťazec, ale bohužiaľ neexistuje žiadna priama metóda na vykonanie tohto prevodu.

Predvolená implementácia natiahnuť() metóda na poli vráti niečo ako Ljava.lang.String; @ 74a10858 ktorá nás informuje iba o type a hash kóde objektu.

Avšak java.util.Arrays obslužná trieda podporuje manipuláciu s poľami a reťazcami, vrátane a natiahnuť() metóda pre polia.

Arrays.toString () vráti reťazec s obsahom vstupného poľa. Novým vytvoreným reťazcom je zoznam prvkov poľa oddelený čiarkami obklopený hranatými zátvorkami („[]“):

Reťazec [] strArray = {"jeden", "dva", "tri"}; Reťazec joinString = Arrays.toString (strArray); assertEquals ("[jedna, dva, tri]", joinString);
int [] intArray = {1,2,3,4,5}; joinString = Arrays.toString (intArray); assertEquals ("[1, 2, 3, 4, 5]", joinString);

A aj keď je skvelé, že Arrays.toString (int []) metóda nám túto úlohu tak pekne vylepšila, porovnajme ju s rôznymi metódami, ktoré môžeme implementovať sami.

2.1. StringBuilder.append ()

Na začiatok sa pozrime, ako vykonať túto konverziu StringBuilder.append ():

String [] strArray = {"Convert", "Array", "With", "Java"}; StringBuilder stringBuilder = nový StringBuilder (); pre (int i = 0; i <strArray.length; i ++) {stringBuilder.append (strArray [i]); } Reťazec joinString = stringBuilder.toString (); assertEquals ("ConvertArrayWithJava", joinString);

Okrem toho na konverziu poľa celých čísel môžeme použiť rovnaký prístup, ale namiesto toho zavoláme Integer.valueOf (intArray [i]) pri pripájaní k nášmu StringBuilder.

2.2. Rozhranie Java Streams API

Java 8 a vyššie ponúka String.join () metóda, ktorá vytvorí nový reťazec spojením prvkov a ich oddelením zadaným oddeľovačom, v našom prípade iba prázdnym reťazcom:

String joinString = String.join ("", nový String [] {"Convert", "With", "Java", "Streams"}); assertEquals ("ConvertWithJavaStreams", joinString);

Ďalej môžeme použiť Collectors.joining () metóda z rozhrania Java Streams API, ktorá spája reťazce z Prúd v rovnakom poradí ako jeho zdrojové pole:

String joinString = Arrays .stream (new String [] {"Convert", "With", "Java", "Streams"}) .collect (Collectors.joining ()); assertEquals ("ConvertWithJavaStreams", joinString);

2.3. StringUtils.join ()

A Apache Commons Lang nikdy nebude vynechaný z úloh, ako sú tieto.

The StringUtils trieda má niekoľko StringUtils.join () metódy, ktoré možno použiť na zmenu poľa reťazcov do jedného reťazca:

String joinString = StringUtils.join (nový reťazec [] {"Convert", "With", "Apache", "Commons"}); assertEquals ("ConvertWithApacheCommons", joinString);

2.4. Joiner.join ()

A aby som nebol prekonaný, Guava pojme to isté s jeho Stolár trieda. The Stolár trieda ponúka plynulé rozhranie API a poskytuje niekoľko pomocných metód na pripojenie údajov.

Napríklad môžeme pridať oddeľovač alebo preskočiť nulové hodnoty:

Reťazec joinString = Joiner.on ("") .skipNulls () .join (nový reťazec [] {"Convert", "With", "Guava", null}); assertEquals ("ConvertWithGuava", joinString);

3. Preveďte reťazec na pole reťazcov

Podobne niekedy musíme reťazec rozdeliť na pole, ktoré obsahuje určitú podmnožinu vstupného reťazca rozdelenú zadaným oddeľovačom, pozrime sa tiež, ako to môžeme urobiť.

3.1. String.split ()

Najprv začnime rozdelením bielych znakov pomocou String.split () metóda bez oddeľovača:

Reťazec [] strArray = "loremipsum" .split ("");

Ktorý produkuje:

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

3.2. StringUtils.split ()

Po druhé, pozrime sa znova na StringUtils triedy z knižnice Apache’s Commons Lang.

Nájdeme medzi mnohými metódami bezpečnými pre nulové hodnoty na reťazcových objektoch StringUtils.split (). V predvolenom nastavení predpokladá oddeľovač medzery:

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

Čo vedie k:

["lorem", "ipsum", "dolor", "sedieť", "amet"]

Ak však chceme, môžeme poskytnúť aj oddeľovač.

3.3. Splitter.split ()

Nakoniec môžeme tiež použiť Guava s tým Rozdeľovač plynulé API:

Zoznam resultList = Splitter.on ('') .trimResults () .omitEmptyStrings () .splitToList ("lorem ipsum dolor sit amet"); String [] strArray = resultList.toArray (nový reťazec [0]);

Čo generuje:

["lorem", "ipsum", "dolor", "sedieť", "amet"]

4. Záver

V tomto článku sme si ukázali, ako previesť pole na reťazec a späť pomocou jadra Java a populárnych pomocných knižníc.

Implementáciu všetkých týchto príkladov a útržkov kódu nájdete samozrejme na serveri GitHub.


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