Estoy buscando un método que devuelva un booleano si la cadena que se pasa es un número válido (por ejemplo, "123.55e-9", "-333.556 "). Me No quieren simplemente hacer:Biblioteca de Java para comprobar si una cadena contiene un número * sin * excepciones
public boolean isANumber(String s) {
try {
BigDecimal a = new BigDecimal(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
Claramente, la función debe utilizar una máquina de estados (DFA) para analizar la cadena para hacer ejemplos válidos seguro que no engañan a ella (por ejemplo, "-21, 22.22.2 "," 33-2 "). ¿Sabes si existe una biblioteca de este tipo? Realmente no quiero escribirlo porque es un problema tan obvio que estoy seguro de que volvería a inventar la rueda.
Gracias,
Nick
Por qué es exactamente lo que no desea usar el análisis de BigDecimal? Es la forma más fácil, realmente. – Jorn
Me gustaría saber por qué no quieres usar el fragmento que diste? Si necesita _use_ el número, debe analizarlo? ¿Es solo para validar que una cadena puede ir al back-end como está? –
Porque las excepciones no son menciones para este caso. Las excepciones son, bueno, para excepciones, no para el control del programa. – Malax