将单个字符传递给期望CharSequence的方法的最有效方法是什么?将单个字符转换为CharSequence的最有效方法
这是我的本钱:
textView.setText(new String(new char[] {c}));
根据the answers given here,这是做它该输入是一个字符数组的一个明智的方式。我想知道是否有一个偷偷摸摸的快捷方式,我可以在单个字符的情况下适用。
将单个字符传递给期望CharSequence的方法的最有效方法是什么?将单个字符转换为CharSequence的最有效方法
这是我的本钱:
textView.setText(new String(new char[] {c}));
根据the answers given here,这是做它该输入是一个字符数组的一个明智的方式。我想知道是否有一个偷偷摸摸的快捷方式,我可以在单个字符的情况下适用。
textView.setText(String.valueOf(c))
速记,在最少的键入字符可供选择:
c+""; // where c is a char
在全:
textView.setText(c+"");
char c = 'y';
textView.setText(""+c);
纵观Character.toString(char c)
方法的实现表明,它们几乎使用了您使用的代码相同:
public String toString() {
char buf[] = {value};
return String.valueOf(buf);
}
为便于阅读,您应该只使用Character.toString(c)
。
另一种有效的方式很可能是
new StringBuilder(1).append(c);
这绝对是更高效,使用+
运营商,因为根据的Javadoc:
Java语言提供对字符串连接操作的特殊支持(+),并将其他对象转换为字符串。字符串连接是通过
StringBuilder
(或StringBuffer
)类及其append方法
实现无连接解决方案是这样的:
Character.valueOf(c).toString();
产品中最小巧的CharSequence当你有字符屈指可数,你可以得到是CharBuffer。用你的char值初始化它:
CharBuffer.wrap(new char[]{c});
这就是说,使用字符串是一个公平的一点更易读,易于使用。
感谢您的解释。我接受了接受的答案,因为我怀疑String类可能有一个内置的单字符字符串表来有效地支持valueOf()函数。 –