Chaîne Unicode supprimer char de la chaîne
J'ai une chaîne formatée avec NumberFormat instance. Lorsque j'affiche les caractères de la chaîne, j'ai un espace insécable (hexa code : A0 et unicode 160). Comment puis-je supprimer ce caractère de ma chaîne.
J'ai essayé string = string.replaceAll("\u0160", "");
et string = string.replaceAll("0xA0", "")
, les deux ne fonctionne pas.
String string = ((JTextField)c)getText();
string = string.replace("\u0160", "");
System.out.println("string : " string);
for(int i = 0; i < string.length; i++) {
System.out.print("char : " + string.charAt(i));
System.out.printf("Decimal value %d", (int)string.charAt(i));
System.out.println("Code point : " + Character.codePointAt(string, i));
}
La sortie contient toujours un espace blanc avec la valeur décimale de 160 et un point de code 160.
S'il vous plaît poster une courte mais complète du programme qui illustre le problème. Votre première démarche doit être fine, bien que je ne l'utiliserais
replace
plutôt que replaceAll
, que vous n'avez vraiment pas besoin d'une regex ici.OriginalL'auteur xtrem06 | 2011-12-14
Vous devez vous connecter pour publier un commentaire.
Le caractère unicode
\u0160
n'est pas un espace de non-rupture. Après le \u il doit être la représentation hexadécimale du caractère non pas la virgule, donc l'unicode pour l'espace insécable est\u00A0
. Essayez d'utiliser:Vous pouvez également utiliser replace(char, char) au lieu de remplacer(CharSequence, CharSequence) à l'instar de ce string = string.replace('\u00A0', de Caractère.MIN_VALUE)
OriginalL'auteur halex
De SORTIE:
Il permettra d'éliminer toutes les
char
autres quedigits
.OriginalL'auteur dku.rajkumar
C'est en travaillant comme est.
OriginalL'auteur Daniel Moses