111 votes

Comment puis-je savoir si le premier caractère d’une chaîne est un numéro ?

En Java, y a-t-il un moyen de savoir si le premier caractère d’une chaîne est un numéro ?

One-way est

et faire ce qui précède tout le chemin jusqu'à 9, mais qui semble très inefficace.

Edit : Après la réponse, j’ai trouvé un moyen de regex de procéder ainsi :

264voto

Michael Myers Points 82361
Character.isDigit(string.charAt(0))

Notez que cela permettra à tout Unicode chiffres, pas seulement de 0 à 9. Vous préférerez peut-être:

char c = string.charAt(0);
isDigit = (c >= '0' && c <= '9');

Ou le ralentissement de la regex solutions:

s.substring(0, 1).matches("\\d")
// or the equivalent
s.substring(0, 1).matches("[0-9]")

Cependant, avec l'une de ces méthodes, vous devez d'abord assurez-vous que la chaîne n'est pas vide. Si elle l'est, charAt(0) et substring(0, 1) va jeter un StringIndexOutOfBoundsException. startsWith n'ont pas ce problème.

Pour faire la totalité de la condition d'une ligne et d'éviter les vérifications de longueur, vous pouvez modifier les regexes à la suivante:

s.matches("\\d.*")
// or the equivalent
s.matches("[0-9].*")

Si la condition n'apparaît pas dans une boucle serrée, dans votre programme, le petit gain de performance pour l'aide d'expressions régulières n'est pas susceptible d'être perceptible.

8voto

Kiril Aleksandrov Points 224

Les expressions régulières sont très fortes, mais l’outil coûteux. Il ne vaut pas s’en servir pour vérifier si le premier caractère est un chiffre, mais ce n’est pas tellement élégant  :) Je préfère cette façon :

0voto

regular expression starts with number->'^[0-9]' 
Pattern pattern = Pattern.compile('^[0-9]');
 Matcher matcher = pattern.matcher(String);

if(matcher.find()){

System.out.println("true");
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X