我来自if-loop
if (((current >= 0x20) && (current <= 0xD7FF))
|| ((current >= 0xE000) && (current <= 0xFFFD))
|| ((current >= 0x10000) && (current <= 0x10FFFF))) {
out.append(current);
}
我正在尝试搜索这些范围所代表的内容,但我无法得到答案。你能帮我解释这些范围吗?
答案 0 :(得分:1)
这些是空间上方的unicode字符的有效范围。 低于0x20是控制字符(包括新行和制表符) 在0xD800和0xDFFF之间用于编码字符&gt; 0xFFFF使用UTF-16。
注意:如果当前为char
,则current >= 0x10000
始终为false。如果current
是int
,那么out.append(current);
将打印数字而不是字符。