Saya punya array char:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
Solusi saya saat ini adalah melakukan
String b = new String(a);
Tetapi tentunya ada cara yang lebih baik untuk melakukan ini?
Saya punya array char:
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
Solusi saya saat ini adalah melakukan
String b = new String(a);
Tetapi tentunya ada cara yang lebih baik untuk melakukan ini?
Jawaban:
Tidak, solusi itu benar sekali dan sangat minim.
Namun perlu dicatat, bahwa ini adalah situasi yang sangat tidak biasa: Karena String
ditangani secara khusus di Jawa, bahkan "foo"
sebenarnya adalah a String
. Jadi kebutuhan untuk memisahkan String menjadi individu char
dan bergabung kembali tidak diperlukan dalam kode normal.
Bandingkan ini dengan C / C ++ di mana "foo"
Anda memiliki bundel yang char
diakhiri dengan nol byte di satu sisi dan string
di sisi lain dan banyak konversi di antara mereka karena melakukan metode warisan.
String text = String.copyValueOf(data);
atau
String text = String.valueOf(data);
bisa dibilang lebih baik (merangkum new String
panggilan).
String(char[])
atau varian dari itu. Dan bagian salinan dilakukan di dalam String(char[])
. Ini tidak memberikan manfaat untuk panggilan langsung selain simetri dengan valueOf
metode lain .
String
akan diubah dan / atau ditingkatkan dengan cara yang tidak kompatibel atau beberapa implementasi yang bersaing dapat dipilih saat runtime, maka metode pabrik statis masuk akal. Ini tidak akan terjadi dengan hal tingkat rendah seperti itu String
. Oleh karena itu premis saya adalah: Gunakan palu terkecil yang cocok, bukan yang terbesar yang tersedia.
CharSequence
antarmuka menunjukkan betapa cacatnya "tidak akan terjadi dengan hal-hal tingkat rendah seperti string" adalah - mereka tidak mengubah apa yang terjadi dalam string karena mereka mengikat diri mereka ke sana sejak awal, dan sekarang mereka berharap mereka tidak akan melakukannya.
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
Sekarang untuk mengubah array karakter menjadi String, ada dua cara.
Arrays.toString(c);
Mengembalikan string [w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]
.
Dan:
String.valueOf(c)
Mengembalikan string wwwwww3333dfevvv
.
Dalam Ringkasan : perhatikan Arrays.toString(c)
, karena Anda akan mendapatkan "[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]"
alih-alih "wwwwww3333dfevvv"
.
String di java hanyalah sebuah objek di sekitar array karakter. Karena itu a
char[]
identik dengan String tanpa kotak dengan karakter yang sama. Dengan membuat String baru dari array karakter Anda
new String(char[])
Anda pada dasarnya memberitahu kompiler untuk secara otomatis objek String di sekitar array karakter Anda.
Anda bisa menggunakan String.valueOf
metode.
Sebagai contoh,
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
String b = String.valueOf(a);
System.out.println("Char Array back to String is: " + b);
Untuk lebih lanjut tentang char array to string Anda dapat merujuk tautan di bawah
https://docs.oracle.com/javase/7/docs/api/java/lang/String.html
https://www.flowerbrackets.com/convert-char-array-to-string-java/
package naresh.java;
public class TestDoubleString {
public static void main(String args[]){
String str="abbcccddef";
char charArray[]=str.toCharArray();
int len=charArray.length;
for(int i=0;i<len;i++){
//if i th one and i+1 th character are same then update the charArray
try{
if(charArray[i]==charArray[i+1]){
charArray[i]='0';
}}
catch(Exception e){
System.out.println("Exception");
}
}//finally printing final character string
for(int k=0;k<charArray.length;k++){
if(charArray[k]!='0'){
System.out.println(charArray[k]);
} }
}
}
//Given Character Array
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
//Converting Character Array to String using String funtion
System.out.println(String.valueOf(a));
//OUTPUT : hello world
Mengubah tipe Array apa saja ke String menggunakan fungsi Java 8 Stream
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
Coba ini
Arrays.toString(array)
Cukup gunakan String.value seperti di bawah ini;
private static void h() {
String helloWorld = "helloWorld";
System.out.println(helloWorld);
char [] charArr = helloWorld.toCharArray();
System.out.println(String.valueOf(charArr));
}
Anda juga dapat menggunakan kelas StringBuilder
String b = new StringBuilder(a).toString();
Penggunaan String atau StringBuilder bervariasi sesuai dengan persyaratan metode Anda.
1 cara alternatif adalah dengan melakukan:
String b = a + "";
toString
berfungsi dengan benar char[]
. Ini mungkin bekerja pada beberapa vendor dan versi JVM tertentu.
a
dan pembuatan objek String lain yang digabungkan dengan a.toString()
dan""