Why is '???' numeric?
根据文档,字符串'???是数字的。
因为我认为这可能是文档中的一个错误,所以我运行测试来验证声明。我发现根据ApacheCommons,它是数字的。
为什么这个字符串是数字?这些字符代表什么?
因为"charsequence只包含unicode数字"(引用链接文档)。
对于
Some Unicode character ranges that contain digits:
- '\u0030' through '\u0039', ISO-LATIN-1 digits ('0' through '9')
- '\u0660' through '\u0669', Arabic-Indic digits
- '\u06F0' through '\u06F9', Extended Arabic-Indic digits
- '\u0966' through '\u096F', Devanagari digits
- '\uFF10' through '\uFF19', Fullwidth digits
Many other character ranges contain digits as well.
? 是天成文书(梵文)数字一,\u0967 ? 是天成文书(梵文)数字2,\u0968 ? 是天成文书(梵文)数字三,\u0969
符号????对于尼泊尔语言或使用天成文书(梵文)脚本(如印地语、古吉拉特语等)的任何其他语言,与123相同,因此是Apache Commons的数字。
您可以使用
这将打印
现在,让我们检查"?"的Unicode值。特点:
这个数字在天成文书(梵文)数字的范围内,即:
也尝试:
1 2 3 | Character.UnicodeBlock block = Character.UnicodeBlock.of('?'); System.out.println(block.toString()); // DEVANAGARI |
Devanagari是:
is an abugida (alphasyllabary) alphabet of India and Nepal
"???"是"123"(基本拉丁Unicode)。
阅读:
- 有关"?"的详细信息性格
StringUtils#isNumeric 实施
如果您想知道某个特定的"字符"具有哪些属性(并且有很多属性),请直接转到源代码:unicode.org。他们有研究工具,可以向你展示你最想知道的一切。
如果要查看特定字符的所有属性,请尝试以下操作:
http://unicode.org/cldr/utility/character.jsp?A =?
或:
http://unicode.org/cldr/utility/character.jsp?A= %E0%A5%A7
如果要查看所有分类为"十进制数字"的字符(即数值为0到9的字符),请尝试以下操作:
http://unicode.org/cldr/utility/list-unicodeset.jsp?A=[:数值_类型=小数:](550个代码点--目前/从Unicode 9.0开始)
如果要查看所有分类为"非十进制数字"(即分数、带圆圈等)的字符,请尝试以下操作:
http://unicode.org/cldr/utility/list-unicodeset.jsp?A=[:数字类型=数字:](836个码位--目前/从Unicode 9.0开始)
如果要查看所有分类为"十进制数字"的字符(即数值为0到9的字符),但只能从unicode 6.0向上(使用.net),请尝试以下操作:
http://unicode.org/cldr/utility/list-unicodeset.jsp?A=[:数值_类型=小数:]%26[:年龄=6.0:](420个代码点--不应该更改)
如果要查看分类为"十进制数字"的所有字符(即,数值为0到9的字符),但只能向上到Unicode 6.0(这是.NET使用的字符),并且只能在基本多语言平面/没有补充字符(即,代码点65535/U+0xffff以上的字符),请尝试以下操作:
http://unicode.org/cldr/utility/list-unicodeset.jsp?A=[:数值_type=decimal:]%26[:age=6.0:]%26[:bmp=yes:](350个代码点--不应该更改)
请记住:Unicode联合体生成的是规范,而不是软件。这意味着每个软件供应商都要尽可能准确地实现规范。因此,就像HTML、javascript、CSS、SQL等,不同的平台、语言等之间存在差异。例如,我在Microsoft的.NET框架中发现了一个bug,在该框架中,用拉丁文圈起来的
符号???实际上源自印地语(基本上来自梵文语言,即天成文书),它表示数字值,如:
?代表1
?代表2
像智慧一样