Caractère spécial: '-96'

Résolu/Fermé
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 5 juil. 2015 à 13:12
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 - 5 juil. 2015 à 17:19
Bonjour,
Je voudrais savoir si quelqu'un connait ce caractère '-96' qui apparait comme espace à l'écran.
Je l'ai découvert via la fonction getBytes() et il semblerai qu'il soit automatiquement insérer pour séparer les milliers des unités par la classe "NumberFormat".

J'aurais besoin de le supprimer. J'ai testé
1) maChaine.replace(" ", "");
2) maChaine.replace((char)(-96), (char)(32));
maChaine.replace(" ", "");
Rien y fait il est toujours là!
Merci d'avance et à bientôt...
A voir également:

4 réponses

KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
5 juil. 2015 à 13:33
Bonjour,

Java utilise l'UTF-16 pour encoder ses caractères, la plupart des caractères ne sont donc pas encodés sur un seul octet mais sur deux...
-96 tout seul ne correspond à aucun caractère, combiné à un autre byte c'est tout à fait différent.

Tu devrais afficher tes caractères comme ceci pour avoir plus d'infos :

String s = "Hello World!";
for (char c : s.toCharArray())
    System.out.println((int) c
        + "\t" + Character.UnicodeBlock.of(c)
        + "\t" + Character.getType(c)
        + "\t" + Character.getName(c));
0
NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 331
5 juil. 2015 à 13:36
-96, c'est en signé, je te conseil de le mettre en signé de de voir quel caractère est-ce en regardant la table de ta page de code.
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 2
5 juil. 2015 à 17:19
Hello,
Je suis programmeur amateur (livres, forum etc.)...
Et là, je suis un peu perdu, signé c'est en rapport avec le "-" je suppose? Mais théoriquement, 160 est signé lui aussi (signe "+")...
Enfin bref, je vais cherché un peu de ce côté pour voir si je peu récupérer un truc utile à mon niveau!
Merci encore et à bientôt!
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 2
5 juil. 2015 à 13:51
Re,
Et bien je vais noter ces fonctions-là aussi!!!
En tous cas, je te remerci pour la rapidité avec laquelle tu m'as répondu.

Et donc pour ceux qui aurait le même soucis, le caractère en question est en fait numéroté "160"...

Bonne fin de week-end
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
Modifié par KX le 5/07/2015 à 13:58
Le caractère 160 c'est nbsp, on en avait déjà parlé dans ta dernière discussion...

Remarque : 160 correspond bien à la version signée de -96 (160 = 256 - 96) comme l'expliquait NHenry
0
KX Messages postés 16733 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 janvier 2024 3 015
5 juil. 2015 à 13:51
Avec replaceAll tu peux utiliser des expressions régulières, du coup plutôt que d'essayer d'enlever explicitement le caractère qui te pose problème, tu peux exclure ceux qui ne sont pas ce que t'attends.

En clair : supprimer tout ce qui n'est pas un chiffre.

maChaine.replaceAll("[^0-9]", ""); // replaceAll("\\D", "");
0
moi411 Messages postés 179 Date d'inscription samedi 22 novembre 2003 Statut Membre Dernière intervention 25 juin 2017 2
5 juil. 2015 à 17:14
Re, re,
C'est bien pratique aussi! Dans mon programme je dois garder quelques caractères spéciaux, donc j'ai modifier ton expression:
machaine.replaceAll("[^0-9|.|-]", "");
Etant donné que tout fonctionne correctement, je supose que c'est correcte (pas "illégal" point de vue java)...

Bonne fin de week-end!
--
0