Java parseInt vs isDigit

Java parseInt vs isDigit,java,parseint,Java,Parseint,如果参数是介于0和255(包括0和255)之间的整数的字符串表示形式,我需要我的代码返回true,否则返回false 例如: 字符串“0”、“1”、“2”。。。。“254”、“255”有效 填充字符串(如“00000000 153”)也有效 isDigit显然也会起作用,但我想知道这是否更有益和/或这甚至会对填充字符串起作用 public static boolean isValidElement(String token) { int foo = Integer.parseInt("t

如果参数是介于0和255(包括0和255)之间的整数的字符串表示形式,我需要我的代码返回true,否则返回false

例如: 字符串“0”、“1”、“2”。。。。“254”、“255”有效

填充字符串(如“00000000 153”)也有效

isDigit显然也会起作用,但我想知道这是否更有益和/或这甚至会对填充字符串起作用

public static boolean isValidElement(String token) {
    int foo = Integer.parseInt("token");
    if(foo >= 0 && foo <= 255)
        return true;
    else 
        return false;
    }
公共静态布尔isValidElement(字符串标记){
intfoo=Integer.parseInt(“令牌”);
如果(foo>=0&&foo,则可以使用正则表达式:

return token.matches("1?\\d{1,2}|2[0-4]\\d|25[0-5]");

因此,如果字符串不是有效数字,Integer.parseInt将抛出NumberFormatException,这只是需要记住的一点

我将使用commons-math3库中的NumberUtils.isDigit()进行检查,然后使用Integer.valueOf,它是一个有效的数字解析器

if (NumberUtils.isDigit(token)) {
    int foo = Integer.valueOf(token);
    return (foo >=0 && foo <=255);
}
if(numberrutils.isDigit(令牌)){
int foo=Integer.valueOf(令牌);

return(foo>=0&&foo
isDigit
不起作用,因为它接受字符作为输入,如果是0到9之间的数字,则返回true。[参考:]

因为在您的情况下,您需要测试从0到255的所有数字的字符串表示形式,因此必须使用

此外,还可以通过捕获
NumberFormatException
检查传递的令牌是否为有效数字,如果它不是有效整数,则返回false

public static boolean isValidElement(String token) {
    try{
        int foo = Integer.parseInt(token);
        if(foo >= 0 && foo <= 255)
            return true;
        else 
            return false;
    } catch (NumberFormatException ex) {
        return false;
    }
}
公共静态布尔isValidElement(字符串标记){
试一试{
intfoo=Integer.parseInt(令牌);
if(foo>=0&&foo如果转换不可能,则抛出一个。记住这一点,您可以使用此代码段。不需要其他依赖项

公共静态布尔isValidElement(字符串标记){
试一试{
int value=Integer.parseInt(令牌);

返回值>=0&&value您的代码不工作?JavaScript和Java是两种完全不同的语言。catch(NumberFormatException ex)中的catch和ex是什么意思?为什么要用try打开?
try
catch
是Java关键字。
parseInt
如果提供的输入不能解析为整数(例如
integer.parseInt(“随机文本”)
),则会抛出
NumberFormatException
).
try-catch
是捕获该异常并执行正确操作的语法,即返回
false
,因为输入不是有效元素(不是0到255之间的数字表示)。您可以在中阅读有关
try-catch
的更多信息
public static boolean isValidElement(String token) {
    try {
        int value = Integer.parseInt(token);
        return value >= 0 && value <= 255;
    } catch(NumberFormatException e) {
        return false;
    }
}