如何将字符转换为字符串?
2022-08-31 04:00:51
我有一个,我需要一个.如何从一个转换为另一个?char
String
您可以使用 Character.toString(char)
。请注意,此方法仅返回对 String.valueOf(char) 的
调用,该调用也有效。
正如其他人所指出的,字符串串联也可以作为快捷方式:
String s = "" + 's';
但这可以归结为:
String s = new StringBuilder().append("").append('s').toString();
效率较低,因为 由 a(由 StringBuilder()
过度分配到 )支持,仅对于该数组由结果进行防御性复制。StringBuilder
char[]
16
String
String.valueOf(char)
“进入后门”,方法是将 包装在单元素数组中,并将其传递给包私有构造函数 String(char[], boolean),
从而避免数组复制。char
我有以下五种六种方法来做到这一点。
// Method #1
String stringValueOf = String.valueOf('c'); // most efficient
// Method #2
String stringValueOfCharArray = String.valueOf(new char[]{x});
// Method #3
String characterToString = Character.toString('c');
// Method #4
String characterObjectToString = new Character('c').toString();
// Method #5
// Although this approach seems very simple,
// this is less efficient because the concatenation
// expands to a StringBuilder.
String concatBlankString = 'c' + "";
// Method #6
String fromCharArray = new String(new char[]{x});
注意:Character.toString(char) 返回 String.valueOf(char)。因此,实际上两者是相同的。
String.valueOf(char[] value)
invoke ,这又设置了 char 数组。new String(char[] value)
value
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
来源: