Question:
I did this, but it seems to me that this approach is somewhat wrong:
private static boolean isDigit(String s) throws NumberFormatException {
try {
Integer.parseInt(s);
return true;
} catch (NumberFormatException e) {
return false;
}
}
Answer:
As far as I understand, the purpose is to check on Integer
? Then you can:
s.matches("[-+]?\\d+") // для списка из 1 млн целых чисел и не чисел
// (примерно 50/50) эффективность этой строчки практически
// не отличается от описанной в вопросе функции.
If double
, but without exponential notation, then
((-|\\+)?[0-9]+(\\.[0-9]+)?)+
such a regular will do.
Although I would not sweat it and would do exactly the same, only with Double.parseDouble(s)
, but I am not an indicator 🙂 And I also noticed the name of the method – it is not very correct, since firstly, there is one in the Character
class, and secondly, isNumeric()
is appropriate. But these are just comments from the "what do I think about this" series.