Java 将单个字符转换为字符序列的最有效方法

Java 将单个字符转换为字符序列的最有效方法,java,android,string,char,charsequence,Java,Android,String,Char,Charsequence,将单个字符传递给需要CharSequence的方法最有效的方法是什么 这就是我得到的: textView.setText(new String(new char[] {c} )); 根据,在输入为字符数组的情况下,这是一种明智的方法。我想知道是否有一种偷偷摸摸的快捷方式可以应用于单字符的情况。速记,尽可能少地键入字符: c+""; // where c is a char 全文: textView.setText(c+""); 查看Character.toString(char c)方法的

将单个字符传递给需要CharSequence的方法最有效的方法是什么

这就是我得到的:

textView.setText(new String(new char[] {c} ));

根据,在输入为字符数组的情况下,这是一种明智的方法。我想知道是否有一种偷偷摸摸的快捷方式可以应用于单字符的情况。

速记,尽可能少地键入字符:

c+""; // where c is a char
全文:

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();

当您有少量字符时,可以得到的最紧凑的字符序列是CharBuffer。要使用您的char值初始化此项,请执行以下操作:

CharBuffer.wrap(new char[]{c});

话虽如此,使用字符串更具可读性,也更易于使用。

感谢您的解释。我将使用公认的答案,因为我怀疑String类可能有一个内置的单字符串表来有效地支持valueOf()功能。
Character.valueOf(c).toString();
CharBuffer.wrap(new char[]{c});