Comment puis-je inverser le cas d'une chaîne en Java?
Je veux changer de Chaîne, de sorte que tous les caractères en majuscules deviennent minuscules, et toutes les minuscules caractères sont en majuscules. Nombre de caractères sont tout simplement ignorées.
donc "AbCdE123" devient "aBcDe123"
Je suppose qu'il doit y avoir un moyen pour parcourir par le biais de la Chaîne et flip chaque personnage, ou peut-être une expression régulière qui pourrait le faire.
source d'informationauteur James
Vous devez vous connecter pour publier un commentaire.
Je ne crois pas qu'il y ait quelque chose à faire (c'est relativement rare). Cela devrait le faire si:
Noter que ce n'est pas faire le jeu de paramètres régionaux spécifiques à changer de Chaîne.toUpperCase/Chaîne.toLowerCase. Il ne gère pas non BMP caractères.
Apache Commons StringUtils a un swapCase méthode.
Basée sur la Faraz, je pense que le caractère de la conversion peut être aussi simple que:
Correcte. Le
java.lang.Caractère
classe vous offre sous chaque laisUpperCase()
méthode pour cela. Test sur elle et de faire usage de latoLowerCase()
outoUpperCase()
méthodes en fonction du résultat. Ajouter le résultat de chaque à unStringBuilder
et vous devriez être bien.On peut aussi utiliser un objet StringBuilder, comme il a du caractère le remplacement de méthodes. Toutefois, il pourrait prendre un peu d'espace supplémentaire pour stocker l'objet StringBuilder. Donc, il vous aidera si l'espace n'a pas d'importance et garder la solution simple à comprendre.
Je me rends compte que le fil est très vieux, mais il ya une meilleure façon de le résoudre: