bonsoir,
j'ai un problème avec la conversion d'un caractère en ASCII :
quand je fait :
l'obtient la valeur : 233Code:System.out.println("é".hashCode() )
mais sur la table ASCII le code ASCII de "é" est 130 .
???
Version imprimable
bonsoir,
j'ai un problème avec la conversion d'un caractère en ASCII :
quand je fait :
l'obtient la valeur : 233Code:System.out.println("é".hashCode() )
mais sur la table ASCII le code ASCII de "é" est 130 .
???
Deux choses :
- é n'est pas ASCII et n'a pas de code ASCII. 233 est bel et bien son code ANSI et Unicode.
(Je fais un Edit, car je découvre : )
- J'admets que ça marche dans le cas présent, mais hashCode() ne ressemble pas à getAsciiCodeOfFirstChar() ni getANSICodeOfFirstChar().
hashCode() n'est pas franchement pensé pour faire ça. Je me rends compte à l'instant que ça marche, ie, pour les chaînes d'exactement un caractère Unicode dans le BMP, ça renvoie son code unicode.
Je conseille de faire :
ou si tu tiens vraiment à partir de "é" :Code:System.out.println((int)'é');
Code:System.out.println((int)"é".charAt(0));
j'ai essayé
et je reçoit toujours 233.Code:System.out.println((int)'é');
Oui, j'ai édité, pardon. J'avais même pas vérifié le code exact de é, je t'ai fait confiance.
233 est bel et bien le code ANSI et Unicode de é. Je sais pas d'où tu sors le 130.
Et, de fait, hashCode() marche bel et bien pour faire ce que tu demandes, je ne m'en étais pas rendu compte. Mais c'est quand même pas super clair, je recommande pas.