我有一个Character
数组(不是char数组),我想通过组合数组中的所有字符将其转换为字符串.
我已经尝试了以下内容Character[] a
:
String s = new String(a) //given that a is a Character array
Run Code Online (Sandbox Code Playgroud)
但这不起作用,因为a不是char数组.我将不胜感激任何帮助.
Tor*_*ous 15
Character[] a = ...
new String(ArrayUtils.toPrimitive(a));
Run Code Online (Sandbox Code Playgroud)
ArrayUtils
是Apache Commons Lang的一部分.
最有效的方法是:
Character[] chars = ...
StringBuilder sb = new StringBuilder(chars.length);
for (Character c : chars)
sb.append(c.charValue());
String str = sb.toString();
Run Code Online (Sandbox Code Playgroud)
笔记:
charValue()
避免调用Character.toString()
...但是,除非性能是一个重要问题,否则我可能会选择@ Torious的优雅答案.
顺便提一下,JLS说允许编译器使用等效的StringBuilder代码来优化String并置表达式......但它不会批准跨多个语句的优化.因此这样的事情:
String s = ""
for (Character c : chars) {
s += c;
}
Run Code Online (Sandbox Code Playgroud)
很可能会做很多单独的连接,创建(并丢弃)许多中间字符串.
迭代和连接方法:
Character[] chars = {new Character('a'),new Character('b'),new Character('c')};
String str = "";
for (Character c : chars)
str += c.toString();
System.out.println(str);
Run Code Online (Sandbox Code Playgroud)
输出:
ABC
归档时间: |
|
查看次数: |
39229 次 |
最近记录: |