开发者

Most efficient way to convert a single char to a CharSequence

What's the most efficient way to pass a single ch开发者_开发技巧ar to a method expecting a CharSequence?

This is what I've got:

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

According to the answers given here, this is a sensible way of doing it where the input is a character array. I was wondering if there was a sneaky shortcut I could apply in the single-char case.


textView.setText(String.valueOf(c))


Looking at the implementation of the Character.toString(char c) method reveals that they use almost the same code you use:

  public String toString() {
       char buf[] = {value};
       return String.valueOf(buf);
  }

For readability, you should just use Character.toString( c ).

Another efficient way would probably be

new StringBuilder(1).append(c);

It's definitely more efficient that using the + operator because, according to the javadoc:

The Java language provides special support for the string concatenation operator ( + ), and for conversion of other objects to strings. String concatenation is implemented through the StringBuilder(or StringBuffer) class and its append method


The most compact CharSequence you can get when you have a handful of chars is the CharBuffer. To initialize this with your char value:

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

That being said, using Strings is a fair bit more readable and easy to work with.


Shorthand, as in fewest typed characters possible:

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

In full:

textView.setText(c+"");


A solution without concatenation is this:

Character.valueOf(c).toString();


char c = 'y';
textView.setText(""+c);


Adding to an answer mentioned above (link), adding an example to make things clearer

char c = 'a';
CharSequence cs = String.valueOf(c);
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜