Pretvori niz znakova u niz u Javi

1. Pregled

U ovom ćemo brzom vodiču pokriti različite načine pretvaranja niza znakova u Niz na Javi.

2. Konstruktor gudača

The Niz razred ima a konstruktor koji prihvaća a ugljen niz kao argument:

@Test public void whenStringConstructor_thenOK () {final char [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Niz niza = novi niz (charArray); assertThat (string, is ("baeldung")); }

Ovo je jedan od najlakših načina pretvaranja a ugljen niz do a Niz. Interno se poziva Niz # vrijednostOf stvoriti a Niz objekt.

3. String.valueOf ()

A kad smo već kod toga vrijednost(), možemo ga čak i izravno koristiti:

@Test public void whenStringValueOf_thenOK () {final char [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Niz niza = String.valueOf (charArray); assertThat (string, is ("baeldung")); }

Niz # copyValueOf je još jedna metoda koja je semantički ekvivalentna vrijednost() metoda, ali je imao bilo kakav značaj samo u prvih nekoliko izdanja Java. Od danas, the copyValueOf () metoda je suvišna i ne preporučamo je koristiti.

4. StringBuilder‘S toString ()

Što ako želimo stvoriti a Niz iz niza od ugljen nizovi?

Zatim prvo možemo instancirati a StringBuilder instance i upotrijebite njegov dodati (char []) metoda za dodavanje svih sadržaja zajedno.

Kasnije ćemo koristiti toString () metoda da se dobije Niz zastupanje:

@Test public void whenStringBuilder_thenOK () {final char [] [] arrayOfCharArray = {{'b', 'a'}, {'e', 'l', 'd', 'u'}, {'n', 'g'}}; StringBuilder sb = novi StringBuilder (); za (char [] subArray: arrayOfCharArray) {sb.append (subArray); } assertThat (sb.toString (), je ("baeldung")); }

Gornji kod možemo dodatno optimizirati instancijom StringBuilder točne duljine koja nam treba.

5. Java 8 strujanja

S Arrays.stream (T [] objekt) metodom, možemo otvoriti tok preko niza tipa T.

S obzirom da imamo a Lik niz, možemo koristiti Kolekcionari.joining () operacija formiranja a Niz primjer:

@Test public void whenStreamCollectors_thenOK () {final Character [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Stream charStream = Arrays.stream (charArray); Niz string = charStream.map (String :: valueOf) .collect (Collectors.joining ()); assertThat (string, is ("baeldung")); }

Oprez s ovim pristupom jest da se pozivamo na vrijednost() preko svake Lik element i tako će biti prilično sporo.

6. Zajednička baza Guave Stolar

Recimo ipak da je niz koji moramo stvoriti razgraničen niz. Guava nam pruža praktičnu metodu:

@Test public void whenGuavaCommonBaseJoiners_thenOK () {final Character [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; Niz niza = Joiner.on ("|"). Join (charArray); assertThat (niz, je ("b | a | e | l | d | u | n | g")); }

Opet, imajte na umu to the pridružiti() metoda prihvaća samo a Lik niz a ne primitiv ugljen niz.

7. Zaključak

U ovom uputstvu istražili smo načine pretvaranja datog niza znakova u njegov Niz zastupljenost u Javi.

Kao i obično, svi primjeri koda mogu se naći na GitHubu.