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.