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.