字符和字符串API

Character类封装了char数据类型。对于 J2SE 版本 5,在Character类中添加了许多方法以支持补充字符。该 API 分为两类:在char和代码点值之间转换的方法以及验证或 Map 代码点有效性的方法。

本节介绍了Character类中可用方法的子集。有关可用 API 的完整列表,请参见Character类规范。

转换方法和字符类

下表列出了Character类中最有用的转换方法或促进转换的方法。 codePointAtcodePointBefore方法包含在此列表中,因为通常会在诸如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)
返回CharSequencechar数组中 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

字符串 类中的方法

StringStringBufferStringBuilder类还具有使用补充字符的构造函数和方法。下表列出了一些常用方法。有关可用 API 的完整列表,请参见StringStringBufferStringBuilder类的 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给定数量的代码点的索引。
首页