Fonction char

tataaoa -  
nicocorico Messages postés 846 Statut Membre -
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 846 Statut Membre 138
 
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 19031 Statut Modérateur 3 020
 
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 846 Statut Membre 138
 
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