Konvertering af en liste til streng i Java

1. Introduktion

I denne hurtige artikel vil vi se på, hvordan man konverterer en Liste af elementer til en Snor. Dette kan være nyttigt i visse scenarier, f.eks. Udskrivning af indholdet til konsollen i en menneskelig læsbar form til inspektion / fejlretning.

2. Standard toString () på en Liste

En af de enkleste måder er blot at ringe til toString () metode til Liste:

@Test offentlig ugyldig nårListToString_thenPrintDefault () {List intLIst = Arrays.asList (1, 2, 3); System.out.println (intLIst); }

Produktion:

[1, 2, 3]

Denne teknik anvender internt toString () metode til typen af ​​elementer inden for Liste. I vores tilfælde bruger vi Heltal type, der har en korrekt implementering af toString () metode.

Hvis vi bruger vores brugerdefinerede type, skal du sige, Person, så skal vi sørge for, at Person klasse tilsidesætter toString () metode og stoler ikke på standardimplementeringen. Hvis den toString () metode ikke er korrekt implementeret, kan du få uventede resultater:

[[email protected], [email protected], [email protected]]

3. Brugertilpasset implementering Samlere

Ofte skal vi muligvis vise output i et andet format.

Sammenlignet med det foregående eksempel, lad os erstatte kommaet (,) med en bindestreg (-) og de firkantede parenteser ([,]) med et sæt krøllede seler ({,}):

@Test offentlig ugyldig når CollectorsJoining_thenPrintCustom () {List intList = Arrays.asList (1, 2, 3); String result = intList.stream () .map (n -> String.valueOf (n)) .collect (Collectors.joining ("-", "{", "}")); System.out.println (resultat); }

Produktion:

{1-2-3}

Det Collectors.joining () metoden kræver en CharSequence, så vi er nødt til det kort det Heltal til Snor. Den samme idé kan bruges i tilfælde af enhver anden klasse, selv når vi ikke har adgang til koden for den klasse.

4. Brug af et eksternt bibliotek

Vi ser nu brugen af ​​Apache Commons ' StringUtils klasse for at opnå de samme resultater.

4.1. Maven afhængighed

 org.apache.commons commons-lang3 3.6 

Den seneste version af afhængigheden kan findes her.

4.2. Implementering

Implementeringen er bogstaveligt talt et enkelt metodeopkald:

@Test offentlig ugyldig nårStringUtilsJoin_thenPrintCustom () ")); 

Produktion:

1|2|3

Igen er denne implementering internt afhængig af toString () implementering af den type, vi overvejer.

5. Konklusion

I denne artikel så vi, hvor let det er at konvertere en Liste til en Snor ved hjælp af forskellige teknikker.

Som altid kan den fulde kildekode til denne artikel findes på GitHub.