@ Princeyesuraj, jawaban resmi diberikan oleh adarshr . Jika Anda ingin pemisah sendiri, Anda dapat mencoba jawaban JoeSlav , dan jika tidak ada masalah thread, Anda dapat menggunakan StringBuilder alih-alih StringBuffer untuk efisiensi. Jawaban krock bagus, tapi sedikit berlebihan menurut pendapat saya.
Dante May Code
Jawaban:
470
Jika Anda hanya ingin dump "debug-style" dari array:
String str =Arrays.toString(arr);
atau, untuk kontrol lebih lanjut (sebelum Java 8):
StringBuilder builder =newStringBuilder();for(String s : arr){
builder.append(s);}String str = builder.toString();
(Java 8 ke atas):
String str =String.join(",", arr);
Dan jika Anda datang dari sudut Android:
String str =TextUtils.join(",", arr);
Anda dapat memodifikasi di atas tergantung pada karakter apa, jika ada, yang Anda inginkan di antara string.
Anda mungkin melihat kode yang identik dengan kode pra-Jawa 8 tetapi menggunakan StringBuffer- StringBuilderadalah kelas yang lebih baru yang tidak aman untuk thread, tetapi karenanya memiliki kinerja yang lebih baik dalam satu utas karena tidak jauh dengan sinkronisasi yang tidak dibutuhkan. Singkatnya, Anda lebih baik menggunakan StringBuilderdalam 99% kasus - fungsi bijaksana, keduanya identik.
JANGAN gunakan string dan tambahkan saja dengan + = seperti beberapa jawaban yang ditampilkan di sini. Ini mengirimkan GC melalui atap karena Anda membuat dan membuang objek string sebanyak yang Anda punya item dalam array Anda. Untuk array kecil Anda mungkin tidak benar-benar memperhatikan perbedaannya, tetapi untuk array besar itu bisa jadi urutan besarnya lebih lambat.
Gunakan Apache commons StringUtils.join(). Dibutuhkan array, sebagai parameter (dan juga memiliki kelebihan untuk Iterabledan Iteratorparameter) dan memanggil toString()setiap elemen (jika tidak nol) untuk mendapatkan setiap representasi elemen string. Setiap representasi elemen string kemudian bergabung menjadi satu string dengan pemisah di antaranya jika ditentukan:
Mengembalikan representasi string dari "konten dalam" dari array yang ditentukan. Jika array berisi array lain sebagai elemen, representasi string berisi isinya dan seterusnya. Metode ini dirancang untuk mengubah array multidimensi menjadi string
Jika Anda tidak membutuhkan banyak kontrol, saya percaya ini adalah solusi paling sederhana karena Anda tidak memerlukan lib pihak ketiga. Berikut ini contohnya: System.out.println (Arrays.deepToString (args));
Anda ingin kode yang menghasilkan string dari arrayList,
Iterate through all elements in list and add it to your String result
Anda dapat melakukan ini dalam 2 cara: menggunakan String sebagai hasil atau StringBuffer / StringBuilder.
Contoh:
String result ="";for(String s : list){
result += s;}
... tapi ini bukan praktik yang baik karena alasan kinerja. Lebih baik menggunakan StringBuffer (threads safe) atau StringBuilder yang lebih tepat untuk menambahkan Strings
Jawaban Anda pada dasarnya sama dengan smas; hanya sedikit lebih rumit; jadi tentu saja bukan yang "paling mudah". Dan selain itu, Arrays.toString () bahkan lebih mudah.
GhostCat
-22
Jika Anda tahu berapa banyak elemen yang dimiliki array, cara sederhana adalah melakukan ini:
array.toString()
? Lebih spesifik.Jawaban:
Jika Anda hanya ingin dump "debug-style" dari array:
atau, untuk kontrol lebih lanjut (sebelum Java 8):
(Java 8 ke atas):
Dan jika Anda datang dari sudut Android:
Anda dapat memodifikasi di atas tergantung pada karakter apa, jika ada, yang Anda inginkan di antara string.
Anda mungkin melihat kode yang identik dengan kode pra-Jawa 8 tetapi menggunakan
StringBuffer
-StringBuilder
adalah kelas yang lebih baru yang tidak aman untuk thread, tetapi karenanya memiliki kinerja yang lebih baik dalam satu utas karena tidak jauh dengan sinkronisasi yang tidak dibutuhkan. Singkatnya, Anda lebih baik menggunakanStringBuilder
dalam 99% kasus - fungsi bijaksana, keduanya identik.JANGAN gunakan string dan tambahkan saja dengan + = seperti beberapa jawaban yang ditampilkan di sini. Ini mengirimkan GC melalui atap karena Anda membuat dan membuang objek string sebanyak yang Anda punya item dalam array Anda. Untuk array kecil Anda mungkin tidak benar-benar memperhatikan perbedaannya, tetapi untuk array besar itu bisa jadi urutan besarnya lebih lambat.
sumber
Arrays.toString(yourArray);
tetapi saya kira Anda menggunakanyourArray.toString();
1.8
Anda juga dapat menggunakanString::join
, alih-alih untuk-loop.String.join("", arr);
Gunakan Apache commons
StringUtils.join()
. Dibutuhkan array, sebagai parameter (dan juga memiliki kelebihan untukIterable
danIterator
parameter) dan memanggiltoString()
setiap elemen (jika tidak nol) untuk mendapatkan setiap representasi elemen string. Setiap representasi elemen string kemudian bergabung menjadi satu string dengan pemisah di antaranya jika ditentukan:Menghasilkan:
sumber
Saya suka menggunakan Google's Guava Joiner untuk ini, misalnya:
akan menghasilkan String yang sama dengan:
ETA: Java 8 memiliki dukungan serupa sekarang:
Tidak dapat melihat dukungan untuk melewatkan nilai nol, tapi itu mudah dikerjakan.
sumber
null
akan menjadi "dia yang namanya tidak boleh disebutkan" :-)Joiner.on(", ").useForNull("Voldemort").join("Harry", null, "Ron", "Hermione");
String.join(", ", "Harry", null, "Ron", "Hermione").replaceAll("null", "Voldermart");
Anda bisa melakukan ini, mengingat larik
a
tipe primitif:sumber
Dari Java 8, cara paling sederhana yang saya pikirkan adalah:
Dengan cara ini Anda dapat memilih pembatas yang berubah-ubah.
sumber
Coba metode Arrays.deepToString .
Mengembalikan representasi string dari "konten dalam" dari array yang ditentukan. Jika array berisi array lain sebagai elemen, representasi string berisi isinya dan seterusnya. Metode ini dirancang untuk mengubah array multidimensi menjadi string
sumber
Coba metode kelebihan Arrays.toString .
Atau yang lain, coba penerapan umum berikut ini:
sumber
Berikut ini adalah contoh konversi Array ke String.
sumber
Jika Anda tidak memiliki pilihan tetapi untuk menggunakan Java 6 atau 7 maka Anda harus menggunakan Divide & Conquer join.
sumber
Anda ingin kode yang menghasilkan string dari arrayList,
Anda dapat melakukan ini dalam 2 cara: menggunakan String sebagai hasil atau StringBuffer / StringBuilder.
Contoh:
... tapi ini bukan praktik yang baik karena alasan kinerja. Lebih baik menggunakan StringBuffer (threads safe) atau StringBuilder yang lebih tepat untuk menambahkan Strings
sumber
Gunakan metode gabungan library Apache Commons ' StringUtils .
sumber
sumber
Jika Anda tahu berapa banyak elemen yang dimiliki array, cara sederhana adalah melakukan ini:
sumber