4.3.2 les caractères

SMALLTALK donne accès à l’ensemble des 256 caractères ASCII étendu22. Un caractère est une instance de la classe Character, elle même une sous-classe de la classe abstraite Magnitude.23 Une instance de la classe Character s’écrit en précédant le charactère du signe “$, par exemple $a est une référence à l’instance a de la classe Character. Quelques-uns des messages qu’un caractère comprend sont:
asciiValue, qui retourne la valeur entière correspondant au caractère receveur dans le code ASCII,
isAlphaNumeric, qui retourne true si le caractère est une lettre ou un nombre,
isAlphabetic24, qui teste si le receveur est une lettre,
isDigit, qui teste si le receveur est un chiffre,
isUppercase et isLowercase qui testent si le receveur est respectivement une lettre majuscule ou minuscule,
les comparateurs =, < et > qui testent respectivement si le receveur est égal, inférieur ou supérieur à l’argument,
et, comme tout objet SMALLTALK le message asString qui retourne une chaîne de caractères composée du caractère receveur du message.

Ajoutons encore la méthode asCharacter que toute instance de la classe Integer comprend et qui retourne le caractère correspondant au code ASCII du receveur. Bien entendu, ce message n’a de sens que si l’entier receveur est compris dans l’intervalle [0,255]. Ci-dessous quelques exemples de transmissions concernant des caractères:



transmission résultat


$I asciiValue 73
45 asCharacter $-
$- asciiValue 45
($A asciiValue + 32) asCharacter $a
$a asUppercase $A
$A < $a true


Finalement, notons que la table ASCII donnée dans le Transcript de la figure 4.4 a été obtenue par la transmission suivante:
\stk{1 to: 255 do:  
       [:i | Transcript  
                   show: i;  
                   show: ’ ’,  
                     i asCharacter asString, ’ ’]}

PIC

FIG. 4.4: La table des caractères ASCII


Notez également que les premiers 32 caractères n’ont pas de représentations imprimables: ce sont des caractères réservés, des caractères de contrôle.