当我检查条件08或09或010及以上时,在org.apache.commons.lang3.math.NumberUtils.isNumber("08")
中以0开头
发布于 2020-02-19 21:28:52
方法isNumber已弃用:
isNumber(String str)已弃用。此功能将在Lang 4.0中删除,请改用isCreatable(字符串
使用isCreatable实现上述目的。
您检查ocatl类型值的上述要求将通过isCreatable方法检测到:
org.apache.commons.lang3.math.NumberUtils.isCreatable("08") // this will return true.
此方法检查字符串是否为有效的Java编号。
有效数字包括用0x或0X限定符标记的十六进制数字、八进制数字、科学记数法和用类型限定符标记的数字(例如123L)。
以零开头的非十六进制字符串被视为八进制值。因此,字符串09将返回false,因为9不是有效的八进制值。但是,以0开头的数字。都被视为小数。
参考官方docs
发布于 2020-02-19 21:26:33
以零开头的非十六进制字符串被视为八进制值。因此,字符串"09“将返回false,因为"9”不是有效的八进制值。
参考官方docs
发布于 2020-02-19 21:32:59
请改用isCreatable。我假设isNumber的工作方式基本上是一样的。
“以零开头的非十六进制字符串被视为八进制值。”因此,字符串09将返回false,因为9不是有效的八进制值。但是,以0开头的数字。都被视为小数。“
00-07是数字。08--010不会被解释为八进制数,但这是一个库问题。
请参阅What do numbers starting with 0 mean in python?
如果有疑问,请阅读手册。
https://stackoverflow.com/questions/60301411
复制相似问题