将单个字符传递给期望 CharSequence 的方法的最有效方法是什么?
这就是我所拥有的:
textView.setText(new String(new char[] {c} ));
根据此处给出的答案,在输入是字符数组的情况下,这是一种明智的做法。我想知道是否有一个偷偷摸摸的捷径可以应用于单字符案例。
textView.setText(String.valueOf(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
(orStringBuffer
) 类及其 append 方法实现的
当您有少量字符时,您可以获得的最紧凑的 CharSequence 是 CharBuffer。用你的 char 值初始化它:
CharBuffer.wrap(new char[]{c});
话虽如此,使用字符串更具可读性和易于使用。
速记,尽可能少输入字符:
c+""; // where c is a char
在全:
textView.setText(c+"");
没有连接的解决方案是这样的:
Character.valueOf(c).toString();
char c = 'y';
textView.setText(""+c);
添加到上面提到的答案(链接),添加示例以使事情更清楚
char c = 'a';
CharSequence cs = String.valueOf(c);