Le deuxième exemple est clairement supérieur. La signification du deuxième exemple est immédiatement évidente lorsque vous regardez le code. La signification du premier exemple n’est évidente que si vous avez mémorisé l’intégralité de la table ASCII dans votre tête.
Vous devez faire la distinction entre rechercher un caractère spécifique ou rechercher une plage ou une classe de caractères.
1) Vérifier un caractère spécifique.
Pour les caractères ordinaires, utilisez le littéral de caractère, par exemple, if(ch=='z')...
. Si vous comparez des caractères spéciaux tels que tabulation ou saut de ligne, vous devez utiliser les échappements, comme if (ch=='\n')...
. Si le caractère que vous recherchez est inhabituel (par exemple, non immédiatement reconnaissable ou indisponible sur un clavier standard), vous pouvez utiliser un code de caractère hexadécimal plutôt que le caractère littéral. Mais comme un code hexadécimal est une "valeur magique", vous devez l'extraire en une constante et la documenter:
const char snowman = 0x2603; // snowman char used to detect encoding issues
...
if (ch==showman)...
Les codes hexadécimaux constituent la méthode standard de spécification des codes de caractères.
2) Vérifier une classe de caractères ou une plage
Vous ne devriez vraiment pas faire cela directement dans le code de l'application, mais l'encapsuler dans une classe séparée uniquement concernée par la classification des caractères. Et vous devriez varier ce nombre, car des bibliothèques existent déjà à cet effet, et la classification des caractères est généralement plus complexe que vous ne le pensez, du moins si vous considérez des caractères en dehors de la plage ASCII.
Si vous ne vous souciez que des caractères de la plage ASCII, vous pouvez utiliser des littéraux de caractères dans cette bibliothèque, sinon vous utiliseriez probablement des littéraux hexadécimaux. Si vous examinez le code source de la bibliothèque de caractères intégrée Java, il fait également référence aux valeurs et aux plages de caractères utilisant hexadécimal, car elles sont spécifiées dans la norme Unicode.