[java] charをStringに変換するには?



4 Answers

いい質問。 私はそれを行うために以下の5つの 6 つの方法を持っています。

1. String stringValueOf = String.valueOf('c'); // most efficient

2. String stringValueOfCharArray = String.valueOf(new char[]{x});

3. String characterToString = Character.toString('c');

4. String characterObjectToString = new Character('c').toString();

   // Although this method seems very simple, 
   // this is less efficient because the concatenation
   // expands to new StringBuilder().append(x).append("").toString();
5. String concatBlankString = 'c' + "";

6. String fromCharArray = new String(new char[]{x});

注: Character.toString(char)String.valueOf(char)返します。 したがって、効果的には両方が同じです。

String.valueOf(char[] value)は、 new String(char[] value) String.valueOf(char[] value)呼び出し、char配列のvalue設定しvalue

public String(char value[]) {
    this.value = Arrays.copyOf(value, value.length);
}

一方、 String.valueOf(char value)は、次のパッケージのprivateコンストラクタを呼び出します

String(char[] value, boolean share) {
    // assert share : "unshared not supported";
    this.value = value;
}

Java 8ソースコード内のString.java ソースコード

したがって、 String.valueOf(char)charString変換するためのメモリとスピードの両方に関して最も効率的な方法であるようです。

  1. プリミティブのcharをJavaのStringに変換する方法
  2. JavaでCharを文字列に変換する方法
Question

私はcharを持っていて、私はStringが必要です。 どのように私は1つを他のものに変換するのですか?




これを試してください: Character.toString(aChar)またはこれだけ: aChar + ""




私は文字列に文字配列を変換しています

Char[] CharArray={ 'A', 'B', 'C'};
String text = String.copyValueOf(CharArray);



次のいずれかを使用します。

String str = String.valueOf('c');
String str = Character.toString('c');
String str = 'c' + "";



charStringに変換するさまざまな方法があります。 1つの方法は、 Characterクラスで静的メソッドtoString()を使用することです。

char ch = 'I'; 
String str1 = Character.toString(ch);

実際にこのtoStringメソッドは内部的に文字配列を使用するStringクラスのvalueOfメソッドを使用します:

public static String toString(char c) {
    return String.valueOf(c);
}

したがって、 2番目の方法は、これを直接使用することです。

String str2 = String.valueOf(ch);

StringクラスのこのvalueOfメソッドは、char配列を使用します。

public static String valueOf(char c) {
        char data[] = {c};
        return new String(data, true);
}

したがって、 3番目の方法は、無名配列を使用して1文字をラップし、それをStringコンストラクタに渡すことです。

String str4 = new String(new char[]{ch});

4番目の方法は、連結を利用することです。

String str3 = "" + ch;

これは、 StringBuilderクラスのappendメソッドを実際に使用しappendこれは、ループで連結を実行するときに実際に優先されます。




Related