What's the most efficient way to pass a single char 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.
A String is one of several concrete classes that implements CharSequence interface. So a String is a CharSequence .
We can convert a char to a string object in java by using the Character. toString() method.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With