1. Pengenalan
Dalam artikel ringkas ini, kita akan melihat bagaimana menukar Senarai elemen menjadi String . Ini mungkin berguna dalam senario tertentu seperti mencetak kandungan ke konsol dalam bentuk yang dapat dibaca manusia untuk pemeriksaan / debug.
2. Standard toString () dalam Senarai
Salah satu kaedah termudah adalah dengan memanggil kaedah toString () pada Senarai :
@Test public void whenListToString_thenPrintDefault() { List intLIst = Arrays.asList(1, 2, 3); System.out.println(intLIst); }
Pengeluaran:
[1, 2, 3]
Teknik ini secara dalaman menggunakan kaedah toString () dari jenis elemen dalam Senarai . Dalam kes kami, kami menggunakan jenis Integer yang memiliki implementasi yang tepat dari kaedah toString () .
Sekiranya kita menggunakan jenis khusus kita, katakanlah, Orang , maka kita harus memastikan bahawa kelas Orang mengganti kaedah toString () dan tidak bergantung pada pelaksanaan lalai. Sekiranya kaedah toString () tidak dilaksanakan dengan betul, anda mungkin mendapat hasil yang tidak dijangka:
[[email protected], [email protected], [email protected]]
3. Pelaksanaan Tersuai Menggunakan Pengumpul
Selalunya, kita mungkin perlu memaparkan output dalam format yang berbeza.
Berbanding dengan contoh sebelumnya, mari kita ganti koma (,) dengan tanda hubung (-) dan tanda kurung persegi ([,]) dengan satu set pendakap kerinting ({,}):
@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); }
Pengeluaran:
{1-2-3}
The Collectors.joining () kaedah memerlukan CharSequence , jadi kita perlu untuk peta yang Integer untuk String . Idea yang sama dapat digunakan sekiranya ada kelas lain walaupun kita tidak mempunyai akses ke kod kelas tersebut.
4. Menggunakan Perpustakaan Luar
Kita sekarang akan melihat penggunaan kelas StringUtils Apache Commons untuk mencapai hasil yang serupa.
4.1. Ketergantungan Maven
org.apache.commons commons-lang3 3.6
Versi ketergantungan terkini boleh didapati di sini.
4.2. Pelaksanaan
Pelaksanaannya adalah panggilan kaedah tunggal:
@Test public void whenStringUtilsJoin_thenPrintCustom() "));
Pengeluaran:
1|2|3
Sekali lagi, pelaksanaan ini bergantung secara dalaman pada pelaksanaan toString () dari jenis yang sedang kita pertimbangkan.
5. Kesimpulan
Dalam artikel ini, kami melihat betapa mudahnya menukar List ke String menggunakan teknik yang berbeza.
Seperti biasa, kod sumber penuh untuk artikel ini boleh didapati di GitHub.