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
(orStringBuffer
) 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);
精彩评论