根据the documentation字符串' 123'是数字。
由于我认为这可能是文档中的错误,我运行测试来验证该语句。我发现根据Apache Commons它是数字。
为什么这个字符串数字?这些字符代表什么?
答案 0 :(得分:195)
因为" CharSequence只包含Unicode数字" (引用你的linked documentation)。
Character.isDigit
的所有字符都返回true:
包含数字的一些Unicode字符范围:
- ' \ u0030'通过' \ u0039',ISO-LATIN-1数字(' 0'到' 9')
- ' \ u0660'通过' \ u0669',阿拉伯语 - 印度数字
- ' \ u06F0'通过' \ u06F9',扩展阿拉伯语 - 印度数字
- ' \ u0966'通过' \ u096F',梵文数字
- ' \ uFF10'通过' \ uFF19',全空数字
许多其他字符范围也包含数字。
१२३
是梵文数字:
答案 1 :(得分:59)
123 符号与尼泊尔语或使用Devanagari script的任何其他语言(例如印地语,古吉拉特语等)的123相同,因此是一个数字Apache Commons。
答案 2 :(得分:27)
您可以使用Character#getType
检查角色的常规类别:
System.out.println(Character.DECIMAL_DIGIT_NUMBER == Character.getType('१'));
这将打印true
,这是一个"证据"那' 1'是位数。
现在让我们检查一下' 1'的unicode值。字符:
System.out.println(Integer.toHexString('१'));
// 967
此号码位于Devanagari digits范围内,即:\u0966
至\u096F
。
还可以尝试:
Character.UnicodeBlock block = Character.UnicodeBlock.of('१');
System.out.println(block.toString());
// DEVANAGARI
是印度和尼泊尔的abugida(alphasyllabary)字母
" 123"是" 123" (基本拉丁语unicode)。
读:
答案 3 :(得分:24)
如果您想知道特定"字符"有(并且有很多),直接去源: Unicode.org 。他们拥有研究工具,可以向您展示您最想知道的任何事情。
如果要查看特定字符的所有属性,请尝试以下操作:
http://unicode.org/cldr/utility/character.jsp?a=१
或:
如果你想看到所有分类为"十进制数字" (即数字值为0到9),请尝试以下方法:
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]
(550个代码点 - 当前/自Unicode 9.0起)
如果你想看到所有分类为"非十进制数字" (即分数,圈出等),尝试以下方法:
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Numeric:]
(836个代码点 - 当前/从Unicode 9.0开始)
如果你想看到所有分类为"十进制数字" (即数字值为0到9),但只能通过Unicode 6.0(.NET使用),请尝试以下操作:
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]%26[:Age=6.0:]
(420个代码点 - 不应该改变)
如果你想看到所有分类为"十进制数字" (即数字值为0到9),但只能通过Unicode 6.0(.NET使用),并且只能在Base-Multilingual Plane /没有补充字符(即代码点65535 / U + 0xFFFF以上) ),请尝试以下方法:
http://unicode.org/cldr/utility/list-unicodeset.jsp?a=[:Numeric_Type=Decimal:]%26[:Age=6.0:]%26[:bmp=Yes:]
(350个代码点 - 不应该改变)
保持谨慎: Unicode Consortium生成规范,而不是软件。这意味着每个软件供应商都可以尽可能准确地实现规范 。因此,就像HTML,JavaScript,CSS,SQL等一样,不同平台,语言等之间存在差异。例如,我在Microsoft的.NET Framework中发现了一个错误,其中带圆圈的拉丁字母A-Z
和a-z
- 代码点0x24B6到0x24E9 - 未正确注册为{{1} }(bug report here)。这会导致相关功能出现意外行为,例如调用char.IsLetter = true
方法(bug report here)时。
答案 4 :(得分:20)
符号'123'实际上源自印地语(基本上来自梵语,即梵语),它代表数值如下:
1代表1
2代表2
和明智的一样