Всякий раз, когда я пытаюсь найти в Интернете, чтобы узнать, имеет ли значение int, принятое из поля пользователя, некоторые символы, такие как Az или любые специальные символы, все сайты предполагают, что входной файл находится в форме String. функция
boolean numberValidation(int number){
if number has characters mentioned above, return false
else return true
}
Если вы ищете шестнадцатеричные числа с любой цифрой > 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
.
В этом случае компилятор будет жаловаться на переданный параметр.
Если параметр был строкой, и вы хотите определить, является ли String допустимым целым числом, вы можете проанализировать его, контролируя исключения. Следующий код - это предложение:
boolean numberValidation(String number){
try{
Integer.parseInt(number);
return true;
}catch(NumberFormatException e){
return false;
}
}
С Уважением,
Попробуйте разобрать его, и если произойдет исключение, верните 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;
}
Вот что я думаю, что вы хотите:
public boolean isNumber(String value) {
return Pattern.compile("\\d+").matcher(value).matches();
}
value.matches("\\d+")
?
number
имеет типint
, оно не может содержать буквенно-цифровые символы.