28

将单个字符传递给期望 CharSequence 的方法的最有效方法是什么?

这就是我所拥有的:

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

根据此处给出的答案,在输入是字符数组的情况下,这是一种明智的做法。我想知道是否有一个偷偷摸摸的捷径可以应用于单字符案例。

4

7 回答 7

50
textView.setText(String.valueOf(c))
于 2011-07-06T21:18:40.087 回答
13

查看该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(or StringBuffer) 类及其 append 方法实现的

于 2011-07-06T21:22:31.657 回答
4

当您有少量字符时,您可以获得的最紧凑的 CharSequence 是 CharBuffer。用你的 char 值初始化它:

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

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

于 2015-04-25T12:52:26.130 回答
3

速记,尽可能少输入字符:

c+""; // where c is a char

在全:

textView.setText(c+"");
于 2011-07-06T21:16:11.403 回答
2

没有连接的解决方案是这样的:

Character.valueOf(c).toString();
于 2011-07-06T21:23:01.750 回答
1
char c = 'y';
textView.setText(""+c);
于 2011-07-06T21:18:28.130 回答
-1

添加到上面提到的答案(链接),添加示例以使事情更清楚

char c = 'a';
CharSequence cs = String.valueOf(c);
于 2021-11-30T06:40:43.393 回答