文章目录
1 char 数据类型概述
-
码点(code point):unicode 字符集中字符对应的数值
-
在Java中,char 数据类型(和 Character 对象封装的值)基于原始的 Unicode 规范(字符集)
-
char表示 UTF-16 编码的代码单元 (code unit)
-
对于0号平面(BMP),一个码点(code point)对应 1 个 code unit —— 1 个 char 对应一个 unicode 字符集中的字符
-
对于辅助平面,一个 code point 将会对应 2 个 code unit—— 2 个 char 对应一个 unicode 字符集中的字符
2 Character 数据类型概述
- Character在 jdk8中, 基于版本Unicode6.0.2 标准
- Character 类的方法和数据是通过 UnicodeData 文件中的信息定义的
- 此文件指定了各种属性,其中包括每个已定义 Unicode 代码点或字符范围的名称和常规类别(General category)
- 详情可查阅 http://www.unicode.org
3 Character 方法简述
3.1 是否有效 或 为 Surrogate 类型
返回类型 | 方法名 | 简述 | 补充 |
---|---|---|---|
static boolean | isValidCodePoint(int var0) | 是否为有效的codePoint | (var0 >>> 16) < 17 |
static boolean | isBmpCodePoint(int var0) | 是否在第 0 平面 | var0 >>> 16 == 0 |
static boolean | isSupplementaryCodePoint(int var0) | 是否在辅助平面 | var0 >= 0x10000&& var0 < 0x110000; |
static boolean | isHighSurrogate(char var0) | 是否是高代理 | var0 >= ‘\ud800’ && var0 < ‘\udc00’ |
static boolean | isLowSurrogate(char var0) | 是否是低代理 | var0 >= ‘\udc00’ && var0 < ‘\ue000’ |
static boolean | isSurrogate(char var0) | 是否是代理 | 综上 |
static boolean | isSurrogatePair(char var0, char var1) | 是否是代理对 | isHighSurrogate(var0) && isLowSurrogate(var1) |