好问题。我有以下五种 6种方法可以做到这一点。
// #1String stringValueOf = String.valueOf('c'); // most efficient// #2String stringValueOfCharArray = String.valueOf(new char[]{x});// #3String characterToString = Character.toString('c');// #4String characterObjectToString = new Character('c').toString();// #5 // Although this method seems very simple, // this is less efficient because the concatenation // expands to new StringBuilder().append(x).append("").toString();String concatBlankString = 'c' + "";// #6String fromCharArray = new String(new char[]{x});注意:
Character.toString(char)返回
String.valueOf(char)。因此有效地两者是相同的。
String.valueOf(char[] value)调用
new String(char[] value),这又设置了
valuechar数组。
public String(char value[]) { this.value = Arrays.copyOf(value, value.length);}另一方面,
String.valueOf(char value)调用以下程序包私有构造函数。
String(char[] value, boolean share) { // assert share : "unshared not supported"; this.value = value;}从源代码
String.java中的Java 8的源代码
因此
String.valueOf(char)似乎是最有效的方法,在这两个存储器和速度方面,用于转换char到String。



