web-dev-qa-db-ja.com

Char配列を文字列に変換する方法

Char配列があります。

char[] a = {'h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd'};

私の現在の解決策はすることです

String b = new String(a);

しかし確かにこれを行うより良い方法はありますか?

369
chutsu

いいえ、その解決策は絶対的に正しいものであり、ごくわずかです。

ただし、これは非常に珍しい状況であることに注意してください。StringはJavaでは特別に処理されるため、"foo"でも実際にはStringです。したがって、文字列を個々のcharに分割して結合する必要は、通常のコードでは必要ありません。

これをC/C++と比較してみましょう。ここで、"foo"には、片側にゼロバイト、反対側にcharで終わるstringのバンドルがあり、それらの間で多くの変換が行われます。

198
A.H.

String text = String.copyValueOf(data);

または

String text = String.valueOf(data);

間違いなく優れています(new String呼び出しをカプセル化します)。

140
David Titarenco

これはchar配列を文字列に変換します。

char[] charArray = {'a', 'b', 'c'};
String str = String.valueOf(charArray);
36
Billz
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を返します。

8
AalekhG

Javaの文字列は、文字の配列を囲む単なるオブジェクトです。それ故に

char[]

同じ文字を持つボックス化されていない文字列と同じです。文字の配列から新しい文字列を作成する

new String(char[])

あなたは本質的にあなたの文字の配列の周りにStringオブジェクトを自動ボックス化するようにコンパイラに言っています。

6
Nathan Meyer
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]);
            }       }
    }
}
2

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

https://www.flowerbrackets.com/char-array-to-string-Java/

2
Shiva
 //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());
0
Arpan Saini

これを試して

Arrays.toString(array)
0
Jessica Pereira