Проверьте, есть ли у целого числа какой-либо символьный контент в Java

1

Всякий раз, когда я пытаюсь найти в Интернете, чтобы узнать, имеет ли значение int, принятое из поля пользователя, некоторые символы, такие как Az или любые специальные символы, все сайты предполагают, что входной файл находится в форме String. функция

boolean numberValidation(int number){
    if number has characters mentioned above, return false
   else return true
}
  • 0
    Подсказка: number имеет тип int , оно не может содержать буквенно-цифровые символы.
  • 0
    Как у int могут быть символы? Невозможно. Вы, должно быть, имели в виду String. В этом случае регулярные выражения являются одним из способов сделать это.
Показать ещё 1 комментарий
Теги:
validation
integer

4 ответа

1
Лучший ответ

Если вы ищете шестнадцатеричные числа с любой цифрой > 9, вы можете сделать это как таковое:

// hex representation of -889275714
int i = 0xcafebabe;
// just 1
int j = 1;
// represents both as hexadecimal String representations
String is = Integer.toHexString(i);
String ij = Integer.toHexString(j);
// pattern to check for letters
Pattern alpha = Pattern.compile("[a-z]", Pattern.CASE_INSENSITIVE);
System.out.printf("\"%s\" contains characters, \"%s\" does not.%n", is, ij);

Вывод

"cafebabe" contains characters, "1" does not.

Заметка

Для String представляющих числа, как показано в других ответах, используйте Integer.parseInt и поймайте NumberFormatException.

  • 0
    Спасибо, Мена, это то, что я искал.
  • 0
    @Kernelfreak, пожалуйста! :)
Показать ещё 3 комментария
2

В этом случае компилятор будет жаловаться на переданный параметр.

Если параметр был строкой, и вы хотите определить, является ли String допустимым целым числом, вы можете проанализировать его, контролируя исключения. Следующий код - это предложение:

boolean numberValidation(String number){
    try{
        Integer.parseInt(number);
        return true;
    }catch(NumberFormatException e){
        return false;
    }
}

С Уважением,

  • 0
    Излишне говорить, что это можно сделать и с помощью регулярных выражений, но это немного сложный способ (но крутой способ :)).
1

Попробуйте разобрать его, и если произойдет исключение, верните false else return true

boolean numberValidation(String supposedNumber) {
    boolean flag = false;
    int x;
    try {
        x = Integer.parseInt(supposedNumber);
        flag = true;
    } catch(NumberFormatException ex) {
        flag = false;
    }
    return flag;
}
  • 0
    1. Не компилируется, 2. Ответы с простым кодом не помогут ОП.
  • 1
    Не понимаю, почему это будет понижено. Вполне приемлемо, хотя я не без ума от использования исключений таким образом.
Показать ещё 6 комментариев
0

Вот что я думаю, что вы хотите:

public boolean isNumber(String value) { 
    return Pattern.compile("\\d+").matcher(value).matches();
}
  • 0
    Почему не просто value.matches("\\d+") ?
  • 0
    Конечно, почему нет ...?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню