我通过下面的if-loop
if (((current >= 0x20) && (current <= 0xD7FF))
|| ((current >= 0xE000) && (current <= 0xFFFD))
|| ((current >= 0x10000) && (current <= 0x10FFFF))) {
out.append(current);
}
我试图搜索这些范围代表什么,但我没有得到答案。你能帮我解释一下这些范围吗?
这些是空格以上unicode字符的有效范围。0x20下面是控制字符(包括新行和制表符)在0xD800和0xDFFF之间用于使用UTF-16编码> 0xFFFF的字符。
注意:如果电流为char
,则current >= 0x10000
总是假的。如果current
是int
,则out.append(current);
将打印数字而不是字符。