NutzCN Logo
问答 使用Nums类转数字时报错
发布于 2031天前 作者 qq_6c186ef5 1792 次浏览 复制 上一个帖子 下一个帖子
标签:

好像把"08"这样的字符串当做8进制了,而日期的月份小于10时MM获取到就是两位数0开头,一下代码转的时候报错

public class Test {
    public static void main(String[] args) {
        Nums.Radix ni = Nums.evalRadix("08");
        Integer.valueOf(ni.val,ni.radix);
    }
}

public static Radix evalRadix(String str) {
    if (str.startsWith("0x"))
        return new Radix(str.substring(2), 16);
    if (str.startsWith("0") && str.length() > 1)
        return new Radix(str.substring(1), 8);
    if (str.startsWith("0b"))
        return new Radix(str.substring(2), 2);
    return new Radix(str, 10);
}

Exception in thread "main" java.lang.NumberFormatException: For input string: "8"
	at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
	at java.lang.Integer.parseInt(Integer.java:580)
	at java.lang.Integer.valueOf(Integer.java:740)
	at Test.main(Test.java:13)
4 回复

一般用不到这个地方呗,而且这处理并没有问题呀

我用了nutz-plugins-validation-1.r.63.r1.jar,它里面好像用过这个函数,在做参数校验的时候,执行set方法的时候就报错了

我没有可以去用

Nums.Radix ni = Nums.evalRadix("08");
        Integer.valueOf(ni.val,ni.radix);

我只能用js将这样的值parseInt()或者字段设置为String,

额,看一下最新版?

添加回复
请先登陆
回到顶部