Comment faire pour supprimer haute-ASCII des caractères de la chaîne ®, ©, ™ en Java
Je veux détecter et de supprimer les caractères ASCII haute comme ®, ©, ™ à partir d'une Chaîne de caractères en Java. Est-il open-source de la bibliothèque qui peut faire cela?
double possible de remplacer des caractères spéciaux dans la chaîne de caractères en java
OriginalL'auteur RandomQuestion | 2011-02-15
Vous devez vous connecter pour publier un commentaire.
Si vous devez supprimer tous les non-US-ASCII (c'est à dire en dehors de 0x0-0x7F) caractères, vous pouvez faire quelque chose comme ceci:
Si vous avez besoin de filtrer de nombreuses chaînes, il serait préférable d'utiliser un fichier de modèle:
Et si c'est vraiment la performance est critique, peut-être Alex Nikolaenkov suggestion serait mieux.
Sont de Type 1 High caractères ASCII même comme la Haute caractères ASCII. Serait au-dessus de regex également supprimer les Symboles $ et de Livres de signer?
Attention, si vous souhaitez filtrer beaucoup de chaînes avec ce motif. Compiler le modèle à chaque fois et de créer de nouvelles
String
objet derrière les coulisses.Il supprime tous les caractères qui ne sont pas dans table ASCII.
Est-il possible de modifier au-dessus de regex afin de permettre le maintien de certains personnages. Pour l'e.x. Je veux garder £ signe de la chaîne.
OriginalL'auteur axtavt
Je pense que vous pouvez facilement filtrer votre chaîne à la main et vérifier le code du caractère particulier. Si elle correspond à vos besoins, puis l'ajouter à un
StringBuilder
et netoString()
à la fin.fait.
cela viens de faire ma journée!
cela a fait ma journée! merci!!!!
Cela semble fonctionner très bien, sauf qu'il supprime les retours à la ligne pour moi, et netier de ces travaux si (courant >= 0x00 && current <= 0x7e) ou if (courant == '\n' || (...) ) qui est super bizarre!
OriginalL'auteur Alex Nikolaenkov
Une belle façon de le faire est d'utiliser Google Goyave CharMatcher:
newString
contient uniquement les caractères ASCII (point de code < 128) de la chaîne d'origine.Ce lit, plus naturellement que d'une expression régulière. Les expressions régulières peuvent prendre plus d'effort à comprendre pour la suite de lecteurs de votre code.
Tout projet Java devrait inclure cette librairie, de toute façon. Il vous permettra d'économiser beaucoup de travail à long terme. Parfois, vous avez à faire un peu de travail avant d'enregistrer plus d'effort plus tard. 🙂
vous avez peut-être raison à propos de cette bibliothèque java d'être utile (c'est bien), mais hélas n'a pas répondu à la question mieux que le Modèle de réponse.
Cela dépend de votre définition de "meilleur". De toute façon, je ne peux pas vous convaincre, vous devez utiliser Google Goyave partout où vous le pouvez et laissez-vous convaincre.
OriginalL'auteur sjr
Je comprends que vous devez supprimer: ç,ã,ã , mais pour tout le monde qui ont besoin de convertir ç,ã,ã ---> c,a,a veuillez jeter un oeil à ce morceau de code:
Exemple De Code:
De sortie:
C'est un funky Chaîne
OriginalL'auteur molu2008