Quel est le moyen le plus efficace de passer un seul caractère à une méthode qui attend un CharSequence?
C'est ce que j'ai
textView.setText(new String(new char[] {c} ));
Selon les réponses données ici , c’est une façon judicieuse de le faire lorsque l’entrée est un tableau de caractères. Je me demandais s'il y avait un raccourci sournois que je pourrais appliquer dans le cas d'un caractère unique.
textView.setText(String.valueOf(c))
L'examen de l'implémentation de la méthode Character.toString(char c)
révèle qu'ils utilisent presque le même code que vous:
public String toString() {
char buf[] = {value};
return String.valueOf(buf);
}
Pour plus de lisibilité, vous devriez simplement utiliser Character.toString( c )
.
Un autre moyen efficace serait probablement
new StringBuilder(1).append(c);
C'est certainement plus efficace que d'utiliser l'opérateur +
car, selon le javadoc:
Le langage Java fournit un support particulier pour l'opérateur de concaténation de chaînes (+) et pour la conversion d'autres objets en chaînes. La concaténation de chaînes est implémentée via la classe
StringBuilder
(ouStringBuffer
) et sa méthode append
Sténographie, comme dans le moins de caractères saisis possible:
c+""; // where c is a char
En entier:
textView.setText(c+"");
Le CharSuffence le plus compact que vous pouvez obtenir lorsque vous avez une poignée de caractères est le CharBuffer. Pour initialiser ceci avec votre valeur char:
CharBuffer.wrap(new char[]{c});
Cela dit, utiliser Strings est un peu plus lisible et facile à utiliser.
Une solution sans concaténation est la suivante:
Character.valueOf(c).toString();
char c = 'y';
textView.setText(""+c);