Mengonversi Daftar menjadi String di Java

1. Perkenalan

Di artikel singkat ini, kita akan melihat cara mengonversi Daftar elemen menjadi String . Ini mungkin berguna dalam skenario tertentu seperti mencetak konten ke konsol dalam bentuk yang dapat dibaca manusia untuk pemeriksaan / debugging.

2. Standar toString () pada Daftar

Salah satu cara termudah adalah dengan memanggil metode toString () di Daftar :

@Test public void whenListToString_thenPrintDefault() { List intLIst = Arrays.asList(1, 2, 3); System.out.println(intLIst); }

Keluaran:

[1, 2, 3]

Teknik ini secara internal menggunakan metode toString () dari jenis elemen dalam List . Dalam kasus kami, kami menggunakan tipe Integer yang memiliki implementasi yang tepat dari metode toString () .

Jika kita menggunakan tipe kustom kita, katakanlah, Person , maka kita perlu memastikan bahwa kelas Person mengganti metode toString () dan tidak bergantung pada implementasi default. Jika metode toString () tidak diterapkan dengan benar, Anda mungkin mendapatkan hasil yang tidak diharapkan:

[[email protected], [email protected], [email protected]]

3. Penerapan Kustom Menggunakan Kolektor

Seringkali, kita mungkin perlu menampilkan keluaran dalam format yang berbeda.

Dibandingkan dengan contoh sebelumnya, mari kita ganti koma (,) dengan tanda hubung (-) dan tanda kurung siku ([,]) dengan satu set tanda kurung kurawal ({,}):

@Test public void whenCollectorsJoining_thenPrintCustom() { List intList = Arrays.asList(1, 2, 3); String result = intList.stream() .map(n -> String.valueOf(n)) .collect(Collectors.joining("-", "{", "}")); System.out.println(result); }

Keluaran:

{1-2-3}

The Collectors.joining () metode memerlukan CharSequence , jadi kita perlu memetakan dengan Integer ke String . Ide yang sama dapat digunakan dalam kasus kelas lain bahkan ketika kita tidak memiliki akses ke kode kelas itu.

4. Menggunakan Perpustakaan Eksternal

Sekarang kita akan melihat penggunaan kelas StringUtils Apache Commons untuk mencapai hasil yang serupa.

4.1. Ketergantungan Maven

 org.apache.commons commons-lang3 3.6 

Versi terbaru dari ketergantungan tersebut dapat ditemukan di sini.

4.2. Penerapan

Implementasinya secara harfiah adalah panggilan metode tunggal:

@Test public void whenStringUtilsJoin_thenPrintCustom() ")); 

Keluaran:

1|2|3

Sekali lagi, implementasi ini secara internal bergantung pada implementasi toString () dari tipe yang kita pertimbangkan.

5. Kesimpulan

Dalam artikel ini, kami melihat betapa mudahnya mengubah List menjadi String menggunakan teknik yang berbeda.

Seperti biasa, kode sumber lengkap untuk artikel ini dapat ditemukan di GitHub.