Character.isDigit(string.charAt(0))
Tenga en cuenta que this will allow any Unicode digit, no solo 0-9. Es posible que prefiera:
char c = string.charAt(0);
isDigit = (c >= '0' && c <= '9');
O las soluciones de expresiones regulares más lentas:
s.substring(0, 1).matches("\\d")
// or the equivalent
s.substring(0, 1).matches("[0-9]")
Sin embargo, con cualquiera de estos métodos, primero debe asegurarse de que la cadena no está vacía. Si es así, charAt(0)
y substring(0, 1)
lanzarán un StringIndexOutOfBoundsException
. startsWith
no tiene este problema.
Para hacer todo el estado de una línea y evitar los controles de longitud, puede alterar las expresiones regulares a lo siguiente:
s.matches("\\d.*")
// or the equivalent
s.matches("[0-9].*")
Si la condición no aparece en un bucle estrecho en su programa, el pequeño impacto de rendimiento para usar expresiones regulares no es probable que sea notable.
que iba a mencionar la forma de expresiones regulares, pero tenía miedo de que si lo hiciera, se estaría tentado a probarlo. –