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.