Ruby: Comment faire pour savoir si un caractère est une lettre ou un chiffre?
J'ai juste commencé à bricoler avec des Rubis plus tôt cette semaine et j'ai couru dans quelque chose que je ne sais pas trop comment code. Je suis de la conversion d'un scanner qui a été écrit en Java en Ruby pour un devoir en classe, et j'ai obtenu vers le bas de cette section:
if (Character.isLetter(lookAhead))
{
return id();
}
if (Character.isDigit(lookAhead))
{
return number();
}
lookAhead
est un caractère unique choisi de la chaîne (les déplacer d'une case à chaque fois qu'il parcourt en boucle) et ces deux méthodes pour déterminer si c'est un caractère ou un chiffre, de retour approprié type de jeton. Je n'ai pas été en mesure de comprendre un Rubis équivalent à Character.isLetter()
et Character.isDigit()
.
Vous devez vous connecter pour publier un commentaire.
Utiliser une expression régulière qui correspond à lettres & chiffres:
Ceux-ci sont appelés POSIX support des expressions, et l'avantage, c'est que les caractères unicode en vertu de la catégorie donnée sera à la hauteur. Par exemple:
Vous pouvez en lire plus dans Ruby docs pour les expressions régulières.
lookAhead =~ /[[:alnum:]]/
si vous voulez juste pour vérifier si le char est alphanumérique, sans avoir besoin de savoir qui.La façon la plus simple serait d'utiliser une Expression Régulière:
letter?('Ä') # => false
./[[:digit:]]/
est mieux que/[0-9]/
&/[[:alpha:]]/
est mieux que/[A-Za-z]/
. Celui-ci est compatible unicode chiffres/lettres.