Char配列があります。
char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};
私の現在の解決策はすることです
String b = new String(a);
しかし確かにこれを行うより良い方法はありますか?
いいえ、その解決策は絶対的に正しいものであり、ごくわずかです。
ただし、これは非常に珍しい状況であることに注意してください。String
はJavaでは特別に処理されるため、"foo"
でも実際にはString
です。したがって、文字列を個々のchar
に分割して結合する必要は、通常のコードでは必要ありません。
これをC/C++と比較してみましょう。ここで、"foo"
には、片側にゼロバイト、反対側にchar
で終わるstring
のバンドルがあり、それらの間で多くの変換が行われます。
String text = String.copyValueOf(data);
または
String text = String.valueOf(data);
間違いなく優れています(new String
呼び出しをカプセル化します)。
これはchar配列を文字列に変換します。
char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
String str = "wwwwww3333dfevvv";
char[] c = str.toCharArray();
文字配列を文字列に変換するには、2つの方法があります。
Arrays.toString(c);
文字列[w, w, w, w, w, w, 3, 3, 3, 3, d, f, e, v, v, v]
を返します。
そして:
String.valueOf(c)
文字列wwwwww3333dfevvv
を返します。
Javaの文字列は、文字の配列を囲む単なるオブジェクトです。それ故に
char[]
同じ文字を持つボックス化されていない文字列と同じです。文字の配列から新しい文字列を作成する
new String(char[])
あなたは本質的にあなたの文字の配列の周りにStringオブジェクトを自動ボックス化するようにコンパイラに言っています。
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]);
} }
}
}
String.valueOf
メソッドを使うことができます。
例えば、
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);
文字列へのchar配列の詳細については、以下のリンクを参照することができます。
https://docs.Oracle.com/javase/7/docs/api/Java/lang/String.html
//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
Java 8 Stream関数を使用して、指定された配列型を文字列に変換する
String stringValue =
Arrays.stream(new char[][]{a}).map(String::valueOf).collect(Collectors.joining());
これを試して
Arrays.toString(array)