numberutils.createinteger("08") 报错

请问为什么numberutils.createinteger("08"),当传入的字符串提取的数字是这个数的时候报错呢?
其他数都没有问题,单单轮到这个数就会报错

img

追到最底层也没懂为什么会报错

如果你的这个numberUtil是apache-common包的,这里0开头的数字,这个方法会当成8进制的数来处理,而八进制是没有8这个字符的。你可以试试createInteger("07") 这个是不会报错的。
它调用的是jdk中integer的decode方法,参考源码的这里。var1应该代表的就是几进制。

                } else if (var0.startsWith("0", var2) && var0.length() > 1 + var2) {
                    ++var2;
                    var1 = 8;
                }