Ce n'char 160 veux dire dans mon code source?
Je me suis mise en forme des numéros de chaîne à l'aide de la suite de chaîne de format "# #.##", à un certain moment j'ai besoin de tourner le dos à ces chaînes de nombre (1 234 567) en quelque chose comme 1234567. Je suis en train de dépouiller le vide caractères, mais a constaté que
value = value.Replace(" ", "");
pour certains de la raison et de la chaîne de rester 1 234 567. Après avoir regardé la chaîne, j'ai trouvé que
valeur[1] est de 160.
Je me demandais ce que la valeur de 160 signifie?
- Il y a une belle applet intégrée dans Windows pour découvrir ce genre de Unicode codepoints. Utilisation Charmap.exe
- J'ai essayé mais je ne pouvais pas sur Windows 2008
- Avez-vous dit applet en 2010?
Vous devez vous connecter pour publier un commentaire.
La réponse est à chercher dans Tableaux De Codes Unicode - où vous trouverez les Latin-1 supplement graphique; ceci montre que U+00A0 (160 par votre titre, 167, comme par le corps) est un espace insécable.
Vous pourriez peut-être utiliser une regex pour remplacer ces caractères vide:
Cela permettra d'éliminer "tout type d'espaces ou invisible séparateur".
char code
160
serait
value.Replace(Convert.ToChar(160).ToString(),"")
C'est un rapide (et assez lisible) la possibilité de supprimer tous les caractères classés comme des espaces à l'aide de
Char.IsWhiteSpace
:Comme dbemerlin, si vous savez que vous aurez seulement besoin de chiffres à partir de vos données, vous feriez mieux d'utiliser
Char.IsNumber
ou encore plus restrictiveChar.Appel isdigit
:Si vous avez besoin de chiffres et de décimales séparateurs, quelque chose comme cela devrait suffire:
Je vous recommande d'utiliser le char surcharge version:
Solution étendue méthodes:
Et il peut être utilisé avec ce code:
Ne serait pas la méthode préférée pour remplacer tous les caractères vides (et c'est ce que l'interlocuteur a voulu faire) avec les Regex Méthode qui Rubens déjà posté?
ou ce Expresso suggère:
La différence ici est que \p{Z} remplace tout type d'espaces ou invisible séparateur alors que l' \p{Zs} remplace un caractère d'espacement qui est invisible, mais ne prennent de l'espace.
Vous pouvez le lire ici (Section Catégories Unicode):
http://www.regular-expressions.info/unicode.html
En utilisant les RegEx a l'avantage d'une seule commande est nécessaire de remplacer également la normale des espaces et pas seulement l'espace insécable comme expliqué dans quelques réponses ci-dessus.
Si la performance est le chemin à parcourir puis, bien sûr, d'autres méthodes doivent être considérés, mais c'est hors de portée ici.