StringUtils isNumeric returns 当输入为“???”时为真,为什么?
StringUtils isNumeric returns true when input is "???", why?
我正在阅读 commons.apache.org isNumeric
方法定义,它指出:
StringUtils.isNumeric("???") = true;
我不确定为什么 "???"
被认为是数字。我的猜测是:
- 一个
"?"
被认为是一个unicode数字
- 这是某种正则表达式模式
通过查看 isNumeric 方法的 StringUtils 源代码,我找到了这个问题的答案。
在源代码中,该行显示为:
StringUtils.isNumeric("\u0967\u0968\u0969") = true
其中u0967、u0968、u0969分别是Devangari Digits一、二、三。
这可能是浏览器问题,导致 API.
中的字符无法正确呈现
看代码,例子是
StringUtils.isNumeric("\u0967\u0968\u0969") = true
\u0967
是१
,也就是"Devanagari Digit One"
\u0967
是२
,也就是"Devanagari Digit Two"
原来是数字!
我正在阅读 commons.apache.org isNumeric
方法定义,它指出:
StringUtils.isNumeric("???") = true;
我不确定为什么 "???"
被认为是数字。我的猜测是:
- 一个
"?"
被认为是一个unicode数字 - 这是某种正则表达式模式
通过查看 isNumeric 方法的 StringUtils 源代码,我找到了这个问题的答案。 在源代码中,该行显示为:
StringUtils.isNumeric("\u0967\u0968\u0969") = true
其中u0967、u0968、u0969分别是Devangari Digits一、二、三。 这可能是浏览器问题,导致 API.
中的字符无法正确呈现看代码,例子是
StringUtils.isNumeric("\u0967\u0968\u0969") = true
\u0967
是१
,也就是"Devanagari Digit One"
\u0967
是२
,也就是"Devanagari Digit Two"
原来是数字!