Ubah Array Karakter menjadi String di Java

1. Ikhtisar

Dalam tutorial singkat ini, kami akan membahas berbagai cara untuk mengonversi larik karakter menjadi String di Java.

2. Pembuat String

Kelas String memiliki konstruktor yang menerima array karakter sebagai argumen:

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

Ini adalah salah satu cara termudah untuk mengubah array karakter menjadi String . Ini secara internal memanggil String # valueOf untuk membuat objek String .

3. String.valueOf ()

Dan berbicara tentang valueOf (), kita bahkan dapat menggunakannya secara langsung:

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

String # copyValueOf adalah metode lain yang secara semantik setara dengan metode valueOf () tetapi hanya penting dalam beberapa rilis Java pertama. Saat ini, metode copyValueOf () sudah redundan dan kami tidak menyarankan untuk menggunakannya.

4. StringBuilder 's toString ()

Bagaimana jika kita ingin membentuk String dari array array karakter ?

Kemudian, pertama-tama kita dapat membuat instance StringBuilder dan menggunakan metode append (char []) untuk menambahkan semua konten secara bersamaan.

Nanti, kita akan menggunakan metode toString () untuk mendapatkan representasi Stringnya :

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

Kita dapat lebih mengoptimalkan kode di atas dengan memberi contoh StringBuilder dengan panjang yang tepat yang kita butuhkan.

5. Aliran Java 8

Dengan (object T []) Arrays.stream metode, kita bisa membuka aliran di atas sebuah array dari tipe T .

Mengingat kita memiliki array Karakter , kita dapat menggunakan operasi Collectors.joining () untuk membentuk instance String :

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

Peringatan dengan pendekatan ini adalah bahwa kita memanggil valueOf () di atas setiap elemen Character sehingga akan sangat lambat.

6. Jambu Basis Common Base Joiner

Katakanlah bahwa string yang perlu kita buat adalah string yang dipisahkan. Jambu biji memberi kita metode praktis:

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

Sekali lagi, perhatikan bahwa metode join () hanya akan menerima array Karakter dan bukan array karakter primitif .

7. Kesimpulan

Dalam tutorial ini, kami mengeksplorasi cara mengonversi larik karakter tertentu ke representasi String di Java.

Seperti biasa, semua contoh kode dapat ditemukan di GitHub.