1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.
    Скрыть объявление
Скрыть объявление
В преддверии глобального обновления, мы проводим исследования, которые помогут нам сделать опыт пользования форумом ещё удобнее. Помогите нам, примите участие!

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

Тема в разделе "Разработка плагинов для новичков", создана пользователем Den-MC, 24 июл 2021.

Статус темы:
Закрыта.
  1. Автор темы
    Den-MC

    Den-MC Активный участник Пользователь

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

    deadanykey Активный участник Пользователь

    Баллы:
    96
    try {
    //..
    } catch (NumberFormatException ex) {
    // Ну нахрен
    }
     
  3. Автор темы
    Den-MC

    Den-MC Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MellowBite
    что вместо //.. ставить?
     
  4. Demrenus

    Demrenus Активный участник Пользователь

    Баллы:
    66
    !msg.matches("[0-9]+")
     
  5. deadanykey

    deadanykey Активный участник Пользователь

    Баллы:
    96
    Зачем использовать регэкспы, если есть готовый Exception -> NumberFormatException
    ?
     
  6. Dymeth

    Dymeth Активный участник Пользователь

    Баллы:
    98
    Имя в Minecraft:
    Dymeth
    Работать с исключениями менее удобно, чем с условиями. Более того, генерация исключений занимает больше времени, чем проверка паттерна.
    Но конкретно в данной задаче для валидации ввода это вполне адекватное решение
     
  7. dimkaS

    dimkaS Активный участник Пользователь

    Баллы:
    76
    Имя в Minecraft:
    dimkaS
    Код:
    // Если нужно именно число (т.е даже отрицаиельное)
    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;
        }
    
     
  8. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    StringUtils.isNumeric(string);
     
  9. NuaN

    NuaN Активный участник Пользователь

    Баллы:
    96
    Имя в Minecraft:
    NuaN
    Только лучше уточнять, что это для библиотеки Apache Commons Lang.
     
  10. alexandrage

    alexandrage Старожил Пользователь

    Баллы:
    173
    Вшито в ведро.
     
  11. Автор темы
    Den-MC

    Den-MC Активный участник Пользователь

    Баллы:
    66
    Имя в Minecraft:
    MellowBite
    Спасибо большое! Тема закрыта.
     
Статус темы:
Закрыта.

Поделиться этой страницей