Jak sprawdzić, czy String jest liczbą przed jego przetworzeniem?
Możesz użyć NumberFormat#parse
:
try
{
NumberFormat.getInstance().parse(value);
}
catch(ParseException e)
{
// Not a number.
}
Parsuj go (tj. za pomocą Integer#parseInt
) i po prostu złapać wyjątek. =)
Aby wyjaśnić: funkcja parseInt sprawdza, czy może sparsować liczbę w każdym przypadku (oczywiście) i jeśli chcesz ją sparsować tak czy inaczej, nie zamierzasz brać żadnego uderzenia wydajności poprzez faktyczne wykonywanie parsowania.
Jeśli nie chcesz go parsować (lub parsujesz go bardzo, bardzo rzadko), możesz oczywiście chcieć zrobić to inaczej.