字符和字符串API
Character
类封装了char
数据类型。对于 J2SE 版本 5,在Character
类中添加了许多方法以支持补充字符。该 API 分为两类:在char
和代码点值之间转换的方法以及验证或 Map 代码点有效性的方法。
本节介绍了Character
类中可用方法的子集。有关可用 API 的完整列表,请参见Character类规范。
转换方法和字符类
下表列出了Character
类中最有用的转换方法或促进转换的方法。 codePointAt
和codePointBefore
方法包含在此列表中,因为通常会在诸如String
之类的序列中找到文本,并且这些方法可用于提取所需的子字符串。
Method(s) | Description |
---|---|
toChars(int codePoint,char [] dst,int dstIndex) | |
toChars(int codePoint) | 将指定的 Unicode 代码点转换为其 UTF-16 表示形式,并将其放置在char 数组中。用法示例:Character.toChars(0x10400) |
toCodePoint(字符高,字符低) toCodePoint(CharSequence, int) toCodePoint(char [],int,int) | 将指定的参数转换为其补充代码点值。不同的方法接受不同的 Importing 格式。 |
codePointAt(char [] a,int 索引) codePointAt(char [] a,int 索引,int 限制) codePointAt(CharSequence seq,int index) | 返回指定索引处的 Unicode 代码点。第三种方法采用CharSequence ,第二种方法对索引施加上限。 |
codePointBefore(char [] a,int index) codePointBefore(char [] a,int 索引,int 开始) codePointBefore(CharSequence seq,int index) codePointBefore(char [],int,int) | 返回指定索引之前的 Unicode 代码点。第三种方法接受CharSequence ,其他方法接受char 数组。第二种方法对索引实现下限。 |
charCount(int codePoint) | 为可以由单个char 表示的字符返回值 1.对于需要两个char 的补充字符,返回值 2. |
字符类中的验证和 Map 方法
一些以前使用char
基本数据类型的方法(例如isLowerCase(char)
和isDigit(char)
)已被支持辅助字符的方法(例如isLowerCase(int)
和isDigit(int)
)取代。支持以前的方法,但不能与补充字符一起使用。要创建全局应用程序并确保您的代码可与任何语言无缝配合,建议您使用这些方法的较新形式。
请注意,出于性能原因,大多数接受代码点的方法都不会验证代码点参数的有效性。为此,您可以使用isValidCodePoint
方法。
下表列出了Character
类中的一些验证和 Map 方法。
Method(s) | Description |
---|---|
isValidCodePoint(int codePoint) | 如果代码点在 0x0000 到 0x10FFFF(包括 0x0000)之间,则返回 true。 |
isSupplementaryCodePoint(int codePoint) | 如果代码点在 0x10000 到 0x10FFFF(包括 0x10000)之间,则返回 true。 |
isHighSurrogate(char) | 如果指定的char 在\ uD800 到\ uDBFF 的高代理范围内(包括此值),则返回 true。 |
isLowSurrogate(char) | 如果指定的char 在\ uDC00 到\ uDFFF 的低替代范围内,则返回 true。 |
isSurrogatePair(字符高,字符低) | 如果指定的高和低代理代码值表示有效的代理对,则返回 true。 |
codePointCount(CharSequence,int,int) | |
codePointCount(char [],int,int) | 返回CharSequence 或char 数组中 Unicode 代码点的数量。 |
isLowerCase(int) isUpperCase(int) | 如果指定的 Unicode 代码点是小写或大写字符,则返回 true。 |
isDefined(int) | 如果在 Unicode 标准中定义了指定的 Unicode 代码点,则返回 true。 |
isJavaIdentifierStart(char) isJavaIdentifierStart(int) | 如果指定的字符或 Unicode 代码点被允许作为 Java 标识符中的第一个字符,则返回 true。 |
isLetter(int) isDigit(int) isLetterOrDigit(int) | 如果指定的 Unicode 代码点是字母,数字或字母或数字,则返回 true。 |
getDirectionality(int) | 返回给定 Unicode 代码点的 Unicode 方向性属性。 |
Character.UnicodeBlock.of(int codePoint) | 返回表示包含给定 Unicode 代码点的 Unicode 块的对象;如果代码点不是已定义块的成员,则返回null 。 |
字符串 类中的方法
String
,StringBuffer
和StringBuilder
类还具有使用补充字符的构造函数和方法。下表列出了一些常用方法。有关可用 API 的完整列表,请参见String,StringBuffer和StringBuilder类的 javadoc。
构造函数或方法 | Description |
---|---|
字符串(int [] codePoints,int offset量,int 计数) | 分配一个新的String 实例,该实例包含 Unicode 代码点数组的子数组中的字符。 |
String.codePointAt(int index) | |
StringBuffer.codePointAt(int index) StringBuilder.codePointAt(int index) | 返回指定索引处的 Unicode 代码点。 |
String.codePointBefore(int index) StringBuffer.codePointBefore(int index) StringBuilder.codePointBefore(int index) | 返回指定索引之前的 Unicode 代码点。 |
String.codePointCount(int beginIndex,int endIndex) StringBuffer.codePointCount(int beginIndex,int endIndex) StringBuilder.codePointCount(int beginIndex,int endIndex) | 返回指定范围内的 Unicode 代码点数。 |
StringBuffer.appendCodePoint(int codePoint) StringBuilder.appendCodePoint(int codePoint) | 将指定代码点的字符串 表示形式追加到序列。 |
String.offsetByCodePoints(int index,int codePointOffset) StringBuffer.offsetByCodePoints(int index,int codePointOffset) StringBuilder.offsetByCodePoints(int index,int codePointOffset) | 返回从给定索引offset给定数量的代码点的索引。 |