Larik untuk Konversi String

1. Ikhtisar

Dalam tutorial singkat ini, kita akan melihat cara mengonversi array string atau integer menjadi string dan kembali lagi.

Kita dapat mencapai ini dengan kelas utilitas vanilla Java dan Java dari pustaka yang umum digunakan.

2. Konversi Array ke String

Terkadang kita perlu mengonversi larik string atau bilangan bulat menjadi string, tetapi sayangnya, tidak ada metode langsung untuk melakukan konversi ini.

Implementasi default metode toString () pada sebuah array mengembalikan sesuatu seperti Ljava.lang.String; @ 74a10858 yang hanya memberi tahu kita tentang tipe objek dan kode hash.

Namun, kelas utilitas java.util.Arrays mendukung manipulasi array dan string, termasuk metode toString () untuk array.

Arrays.toString () mengembalikan string dengan konten larik input. String baru yang dibuat adalah daftar elemen array yang dipisahkan koma, diapit dengan tanda kurung siku ("[]"):

String[] strArray = { "one", "two", "three" }; String joinedString = Arrays.toString(strArray); assertEquals("[one, two, three]", joinedString);
int[] intArray = { 1,2,3,4,5 }; joinedString = Arrays.toString(intArray); assertEquals("[1, 2, 3, 4, 5]", joinedString);

Dan, meskipun sangat bagus bahwa metode Arrays.toString (int []) mengaktifkan tugas ini untuk kita dengan sangat baik, mari kita bandingkan dengan metode berbeda yang dapat kita implementasikan sendiri.

2.1. StringBuilder.append ()

Untuk memulai, mari kita lihat bagaimana melakukan konversi ini dengan StringBuilder.append () :

String[] strArray = { "Convert", "Array", "With", "Java" }; StringBuilder stringBuilder = new StringBuilder(); for (int i = 0; i < strArray.length; i++) { stringBuilder.append(strArray[i]); } String joinedString = stringBuilder.toString(); assertEquals("ConvertArrayWithJava", joinedString);

Selain itu, untuk mengonversi larik bilangan bulat, kita dapat menggunakan pendekatan yang sama tetapi memanggil Integer.valueOf (intArray [i]) saat menambahkan ke StringBuilder .

2.2. Java Streams API

Java 8 dan di atasnya menawarkan metode String.join () yang menghasilkan string baru dengan menggabungkan elemen dan memisahkannya dengan pembatas yang ditentukan, dalam kasus kami hanya string kosong:

String joinedString = String.join("", new String[]{ "Convert", "With", "Java", "Streams" }); assertEquals("ConvertWithJavaStreams", joinedString);

Selain itu, kita bisa menggunakan metode Collectors.joining () dari Java Streams API yang menggabungkan string dari Stream dalam urutan yang sama seperti larik sumbernya:

String joinedString = Arrays .stream(new String[]{ "Convert", "With", "Java", "Streams" }) .collect(Collectors.joining()); assertEquals("ConvertWithJavaStreams", joinedString);

2.3. StringUtils.join ()

Dan Apache Commons Lang tidak pernah ketinggalan tugas seperti ini.

Kelas StringUtils memiliki beberapa metode StringUtils.join () yang dapat digunakan untuk mengubah larik string menjadi satu string:

String joinedString = StringUtils.join(new String[]{ "Convert", "With", "Apache", "Commons" }); assertEquals("ConvertWithApacheCommons", joinedString);

2.4. Joiner.join ()

Dan tak mau kalah, Jambu biji mengakomodasi hal yang sama dengan kelas Joiner -nya . Kelas Joiner menawarkan API yang lancar dan menyediakan beberapa metode pembantu untuk menggabungkan data.

Misalnya, kita dapat menambahkan pembatas atau melewatkan nilai null:

String joinedString = Joiner.on("") .skipNulls() .join(new String[]{ "Convert", "With", "Guava", null }); assertEquals("ConvertWithGuava", joinedString);

3. Ubah String menjadi Array of Strings

Demikian pula, terkadang kita perlu membagi string menjadi array yang berisi beberapa subset string input yang dipisahkan oleh pembatas yang ditentukan, mari kita lihat bagaimana kita bisa melakukan ini juga.

3.1. String.split ()

Pertama, mari kita mulai dengan membagi spasi menggunakan metode String.split () tanpa pembatas:

String[] strArray = "loremipsum".split("");

Yang menghasilkan:

["l", "o", "r", "e", "m", "i", "p", "s", "u", "m"]

3.2. StringUtils.split ()

Kedua, mari kita lihat lagi kelas StringUtils dari pustaka Commons Lang Apache.

Di antara banyak metode aman-null pada objek string, kita dapat menemukan StringUtils.split (). Secara default, ini mengasumsikan pemisah spasi:

String[] splitted = StringUtils.split("lorem ipsum dolor sit amet");

Yang mengakibatkan:

["lorem", "ipsum", "dolor", "sit", "amet"]

Tapi, kita juga bisa memberikan pembatas jika kita mau.

3.3. Splitter.split ()

Terakhir, kita juga bisa menggunakan Guava dengan Splitter fluent API:

List resultList = Splitter.on(' ') .trimResults() .omitEmptyStrings() .splitToList("lorem ipsum dolor sit amet"); String[] strArray = resultList.toArray(new String[0]);

Yang menghasilkan:

["lorem", "ipsum", "dolor", "sit", "amet"]

4. Kesimpulan

Pada artikel ini, kami mengilustrasikan cara mengonversi array menjadi string dan kembali lagi menggunakan Java inti dan pustaka utilitas populer.

Tentu saja, penerapan semua contoh dan cuplikan kode ini dapat ditemukan di GitHub.