Karaktertömb konvertálása karakterláncra Java-ban

1. Áttekintés

Ebben a gyors bemutatóban különféle módszereket tárgyalunk a karaktertömböt a-vé konvertálására Húr Java-ban.

2. Vonósszerkesztő

A Húr osztálynak van egy konstruktor, amely elfogadja a char tömb mint argumentum:

@Test public void whenStringConstructor_thenOK () {final char [] charArray = {'b', 'a', 'e', ​​'l', 'd', 'u', 'n', 'g'}; String string = új karakterlánc (charArray); assertThat (string, is ("baeldung")); }

Ez az egyik legegyszerűbb módja a char tömb a Húr. Belsőleg hivatkozik String # valueOf létrehozni a Húr tárgy.

3. String.valueOf ()

És ha már erről beszélünk értéke(), akár közvetlenül is használhatjuk:

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

String # copyValueOf egy másik módszer, amely szemantikailag egyenértékű a értéke() módszerrel, de csak az első néhány Java kiadásban volt jelentősége. Mint a mai, a copyValueOf () A módszer felesleges, és nem javasoljuk a használatát.

4. StringBuilder’S toString ()

Mi van, ha a Húr tömbből char tömbök?

Ezután először példázhatjuk a StringBuilder példányt, és használja azt függelék (char []) módszer az összes tartalom hozzáfűzéséhez.

Később használjuk a toString () módszer annak megszerzésére Húr reprezentáció:

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

A fenti kódot tovább optimalizálhatjuk a StringBuilder pontos hosszúságra van szükségünk.

5. Java 8 adatfolyamok

Val vel Tömbök.stream (T [] objektum) módszerrel, egy típusú tömbön keresztül nyithatunk meg egy adatfolyamot T.

Tekintettel arra, hogy van egy karakter sor, használhatjuk a Collectors.joining () műveletet alkotnak a Húr példa:

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

Az ezzel a megközelítéssel kapcsolatos figyelmeztetés az, hogy a értéke() mindegyik felett karakter elem, és így elég lassú lesz.

6. Guava közös bázis Asztalos

Tegyük fel azonban, hogy a létrehozni kívánt karakterlánc egy elválasztott karakterlánc. Guava praktikus módszert ad nekünk:

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

Ismét megjegyezzük a csatlakozik() módszer csak a karakter tömb és nem a primitív char sor.

7. Következtetés

Ebben az oktatóanyagban egy adott karaktertömb átalakításának módjait tártuk fel Húr reprezentáció Java-ban.

Szokás szerint az összes kódpélda megtalálható a GitHubon.