Comment convertir CharSequence en chaîne en Java?
Comment puis-je convertir un Java CharSequence
pour un String
?
3 réponses
En invoquant son toString()
Méthode.
Retourne une chaîne contenant les caractères de cette séquence dans le même ordre que cette séquence. La longueur de la chaîne sera la longueur de cette séquence.
Il y a un problème subtil ici qui est un peu un gotcha.
La méthode toString()
a une implémentation de base dans Object
. CharSequence
est une interface; et bien que la méthode toString()
apparaisse dans le cadre de cette interface, il n'y a rien au moment de la compilation qui vous forcera à la remplacer et à honorer les contraintes supplémentaires que la CharSequence
toString()
javadoc de la méthode met sur la méthode toString()
; c'est-à-dire qu'il devrait renvoyer une chaîne contenant les caractères dans l'ordre retourné par charAt()
.
Votre IDE ne vous aidera même pas en vous rappelant que vous devriez probablement remplacer toString()
. Par exemple, dans intellij, c'est ce que vous verrez si vous créez une nouvelle implémentation CharSequence
: http://puu.sh/2w1RJ . notez l'absence de toString()
.
Si vous comptez sur toString()
sur un CharSequence
arbitraire, devrait fonctionner à condition que l'implémenteur CharSequence
ait fait son travail correctement. Mais si vous voulez éviter toute incertitude, vous devriez utiliser un StringBuilder
et append()
, comme ceci:
final StringBuilder sb = new StringBuilder(charSequence.length());
sb.append(charSequence);
return sb.toString();
Vous pouvez utiliser directement String.valueOf ()
String.valueOf(charSequence)
Bien que ce soit la même chose que toString()
il effectue une vérification nulle sur le charSequence
avant d'appeler ToString.
Ceci est utile lorsqu'une méthode peut renvoyer soit un charSequence
ou null
valeur.