Fonction char

Fermé
tataaoa - 20 janv. 2013 à 17:18
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 - 20 janv. 2013 à 21:06
Bonjour,
Je ne comprend pas le sens de cette fontion :
D'apres son nom je me doute qu'elle convertit un caractere en nombre, mais je ne comprend pas le procédé. a quoi sert le "-" ?
public static int charToInt (char c) {
return (c - 'a');
}

A voir également:

1 réponse

nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
20 janv. 2013 à 18:01
Bonjour,

c'est simplement que la valeur du caractère "a" est donné comme base à soustraire pour obtenir l'index du caractère dans l'alphabet...
En fait chaque symbole à une valeur correspondante dans la table ASCII, le "a" à la valeur 97, on soustrait donc cette valeur afin de partir de a = 0.
0
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
20 janv. 2013 à 18:56
D'ailleurs si le "-" est autorisé c'est parce qu'on a implicitement déjà convertit chacun des deux caractères c et 'a' en entiers. Si on les explicite dans ta méthode ça donnerait ceci :

public static int charToInt (char c)
{
    return ((int) c) - ((int) 'a'); // Le "- " est bien la soustraction
}

Remarque @nicocorico : par défaut en Java on manipule de l'UTF-16 pas de l'ASCII.
0
nicocorico Messages postés 799 Date d'inscription dimanche 19 juin 2011 Statut Membre Dernière intervention 3 juillet 2018 138
20 janv. 2013 à 21:06
Je prend note! C'est sûr que la base ascii est rapide et peu gourmande en mémoire mais quelque peu limitée.
0