@ Ответ Кэла буквально правильный, но, боже мой, @Petefic, это ужасно неэффективный способ сделать что-то.В классе Character
есть метод, который проверяет, является ли char
цифрой, и вы можете просто извлечь каждый символ один раз вместо того, чтобы вызывать substring()
столько раз.
Например, вы можете сделать
public static boolean isNumeric(String input) {
input = input.trim();
for (char c: input.toCharArray()) {
if (Character.isDigit(c))
return true;
}
return false;
}
Для числа 99999
ваш код будет производить более 50 новых объектов;это даст один (массив из toCharArray()
.)
Я вижу несколько других ответов, которые предлагают использовать Integer.parseInt()
и перехватывать исключение.Это не ужасная идея, но на самом деле это не очень хорошая идея, если многие строки не будут числами.Бросать и ловить исключение очень дорого в вычислительном отношении;многие объекты создаются в процессе.Этого следует избегать в тех случаях, когда фактическое восстановление после ошибок не требуется.