Помогите Как проверить, является ли введенное сообщение числом?

  • Автор темы Автор темы Den-MC
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

Den-MC

Активный участник
Пользователь
Баллы
66
Имя в Minecraft
MellowBite
пытался проверить так:
Код:
if (!msg.matches("/^[-+]?[1-9]\\d*$/")) {
    e.setCancelled(true);
    Utils.sendMessage(p, Utils.getMessage("no-int"));
    return;
}

потом я вводил число, но писало, что введенное сообщение не является числом, то есть эта проверка не работает правильно, как тогда проверить?
 
try {
//..
} catch (NumberFormatException ex) {
// Ну нахрен
}
 
Зачем использовать регэкспы, если есть готовый Exception -> NumberFormatException
?
Работать с исключениями менее удобно, чем с условиями. Более того, генерация исключений занимает больше времени, чем проверка паттерна.
Но конкретно в данной задаче для валидации ввода это вполне адекватное решение
 
Код:
// Если нужно именно число (т.е даже отрицаиельное)
public boolean isInteger(final String str) {
        if (str == null || str.length() == 0) {
            return false;
        }
        try {
            Integer.parseInt(str);
            return true;
        } catch (NumberFormatException e) {
            return false;
        }
    }
   // Если строка это число, не работает с отрициательными
    public boolean isNumeric(final String str) {
        for (char c : str.toCharArray()) {
            if (!Character.isDigit(c)) return false;
        }
        return true;
    }
 
Статус
Закрыто для дальнейших ответов.
Назад
Верх