Prevod zoznamu na reťazec v Jave

1. Úvod

V tomto rýchlom článku sa pozrieme na to, ako previesť a Zoznam prvkov do a String. To môže byť užitočné v určitých scenároch, ako je napríklad tlač obsahu na konzolu v podobe čitateľnej pre človeka na kontrolu / ladenie.

2. Štandardné natiahnuť() na a Zoznam

Jedným z najjednoduchších spôsobov je jednoducho zavolať na natiahnuť() metóda na Zoznam:

@Test public void whenListToString_thenPrintDefault () {List intLIst = Arrays.asList (1, 2, 3); System.out.println (intLIst); }

Výkon:

[1, 2, 3]

Táto technika interne využíva natiahnuť() metóda typu prvkov v rámci Zoznam. V našom prípade používame Celé číslo typu, ktorý má správnu implementáciu natiahnuť() metóda.

Ak používame náš vlastný typ, povedzme, Osoba, potom sa musíme uistiť, že Osoba trieda prepíše natiahnuť() metóda a nespolieha sa na predvolenú implementáciu. Ak natiahnuť() metóda nie je správne implementovaná, môžete získať neočakávané výsledky:

[[chránené e-mailom], [chránené e-mailom], [chránené e-mailom]]

3. Používanie vlastnej implementácie Zberatelia

Často možno budeme musieť výstup zobraziť v inom formáte.

V porovnaní s predchádzajúcim príkladom nahraďte čiarku (,) spojovníkom (-) a hranaté zátvorky ([,]) sadou zložených zátvoriek ({,}):

@Test public void whenCollectorsJoining_thenPrintCustom () {List intList = Arrays.asList (1, 2, 3); Výsledok reťazca = intList.stream () .map (n -> String.valueOf (n)) .collect (Collectors.joining ("-", "{", "}")); System.out.println (výsledok); }

Výkon:

{1-2-3}

The Collectors.joining () metóda vyžaduje a CharSequence, takže musíme mapa the Celé číslo do String. Rovnaký nápad je možné použiť v prípade akejkoľvek inej triedy, aj keď nemáme prístup k kódu tejto triedy.

4. Používanie externej knižnice

Teraz uvidíme využitie Apache Commons StringUtils triedy na dosiahnutie podobných výsledkov.

4.1. Maven závislosť

 org.apache.commons commons-lang3 3.6 

Najnovšiu verziu závislosti nájdete tu.

4.2. Implementácia

Implementácia je doslova jediným volaním metódy:

@Test public void whenStringUtilsJoin_thenPrintCustom () ")); 

Výkon:

1|2|3

Táto implementácia je opäť vnútorne závislá od natiahnuť() implementáciu typu, o ktorom uvažujeme.

5. Záver

V tomto článku sme videli, aké ľahké je previesť a Zoznam do a String pomocou rôznych techník.

Celý zdrojový kód tohto článku nájdete ako vždy na GitHub.


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