Konverter Character Array til String i Java

1. Oversikt

I denne raske opplæringen vil vi dekke forskjellige måter å konvertere et tegnoppsett til en String i Java.

2. Strengkonstruktør

De String klasse har en konstruktør som godtar en røye array som argument:

@Test offentlig ugyldig nårStringConstructor_thenOK () {final char [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Strengstreng = ny streng (charArray); assertThat (streng, er ("baeldung")); }

Dette er en av de enkleste måtene å konvertere en røye array til en String. Det påkaller internt Streng # verdi Av å lage en String gjenstand.

3. String.valueOf ()

Og snakker om verdien av(), vi kan til og med bruke den direkte:

@Test offentlig ugyldig nårStringValueOf_thenOK () {final char [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Strengstreng = String.valueOf (charArray); assertThat (streng, er ("baeldung")); }

Streng # copyValueOf er en annen metode som semantisk tilsvarer verdien av() metoden, men hadde noen betydning bare i de første få Java-utgivelsene. Per i dag, de copyValueOf () metoden er overflødig, og vi anbefaler ikke å bruke den.

4. StringBuilder‘S toString ()

Hva om vi vil danne en String fra en rekke røye arrays?

Deretter kan vi først starte en StringBuilder forekomst og bruk dens legge til (char []) metode for å legge alt innholdet sammen.

Senere bruker vi toString () metode for å få sin String representasjon:

@Test offentlig ugyldig nårStringBuilder_thenOK () {final char [] [] arrayOfCharArray = {{'b', 'a'}, {'e', 'l', 'd', 'u'}, {'n', 'g'}}; StringBuilder sb = ny StringBuilder (); for (char [] subArray: arrayOfCharArray) {sb.append (subArray); } assertThat (sb.toString (), er ("baeldung")); }

Vi kan ytterligere optimalisere ovennevnte kode ved å instantiere StringBuilder av den nøyaktige lengden vi trenger.

5. Java 8 Streams

Med Arrays.stream (T [] -objekt) metode, kan vi åpne en strøm over en rekke typer T.

Tatt i betraktning at vi har en Karakter matrise, vi kan bruke Collectors.joining () operasjon for å danne en String forekomst:

@Test offentlig ugyldig nårStreamCollectors_thenOK () {final Character [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Stream charStream = Arrays.stream (charArray); Strengstreng = charStream.map (String :: valueOf) .collect (Collectors.joining ()); assertThat (streng, er ("baeldung")); }

Advarselen med denne tilnærmingen er at vi påberoper oss verdien av() over hver Karakter elementet, og så vil det være ganske tregt.

6. Guava Common Base Snekker

La oss si at strengen vi trenger å opprette er en avgrenset streng. Guava gir oss en praktisk metode:

@Test offentlig ugyldig nårGuavaCommonBaseJoiners_thenOK () {final Character [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Strengstreng = Joiner.on ("|"). Join (charArray); assertThat (streng, er ("b | a | e | l | d | u | n | g")); }

Igjen, merk deg det de bli med() metoden vil bare akseptere en Karakter array og ikke det primitive røye array.

7. Konklusjon

I denne opplæringen undersøkte vi måter å konvertere et gitt tegnarray til String representasjon i Java.

Som vanlig kan alle kodeeksempler finnes på GitHub.


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