java.lang.Object java.lang.Character
public final class Character
Character
类在对象中包装一个基本类型 char
的值。Character
类型的对象包含类型为 char
的单个字段。
此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。
字符信息基于 Unicode 标准,版本 4.0。
Character
类的方法和数据是通过 UnicodeData 文件中的信息定义的,该文件是 Unicode Consortium 维护的 Unicode Character Database 的一部分。此文件指定了各种属性,其中包括每个已定义 Unicode 代码点或字符范围的名称和常规类别。
此文件及其描述可从 Unicode Consortium 获得,网址如下:
char
数据类型(和 Character
对象封装的值)基于原始的 Unicode 规范,将字符定义为固定宽度的 16 位实体。Unicode 标准曾做过修改,以允许那些其表示形式需要超过 16 位的字符。合法代码点 的范围现在是从 U+0000 到 U+10FFFF,即通常所说的 Unicode 标量值。(请参阅 Unicode 标准中 U+n 表示法的定义。)
从 U+0000 到 U+FFFF 的字符集有时也称为 Basic Multilingual Plane (BMP)。代码点大于 U+FFFF 的字符称为增补字符。Java 2 平台在 char
数组以及 String
和 StringBuffer
类中使用 UTF-16 表示形式。在这种表现形式中,增补字符表示为一对 char
值,第一个值取自高代理项 范围,即 (\uD800-\uDBFF),第二个值取自低代理项 范围,即 (\uDC00-\uDFFF)。
所以,char
值表示 Basic Multilingual Plane (BMP) 代码点,其中包括代理项代码点,或 UTF-16 编码的代码单元。int
值表示所有 Unicode 代码点,包括增补代码点。int
的 21 个低位(最低有效位)用于表示 Unicode 代码点,并且 11 个高位(最高有效位)必须为零。除非另有指定,否则与增补字符和代理项 char
值有关的行为如下:
char
值的方法无法支持增补字符。它们将代理项字符范围内的 char
值视为未定义字符。例如,Character.isLetter('\uD840')
返回 false
,即使是特定值,如果在字符串的后面跟着任何低代理项值,那么它将表示一个字母。 int
值的方法支持所有 Unicode 字符,其中包括增补字符。例如,Character.isLetter(0x2F81A)
返回 true
,因为代码点值表示一个字母(一个 CJK 象形文字)。 在 Java SE API 文档中,Unicode 代码点 用于范围在 U+0000 与 U+10FFFF 之间的字符值,而 Unicode 代码点 用于作为 UTF-16 编码的代码单元的 16 位 char
值。有关 Unicode 技术的详细信息,请参阅 Unicode Glossary。
嵌套类摘要 | |
---|---|
static class |
Character.Subset 此类的实例表示 Unicode 字符集的特定子集。 |
static class |
Character.UnicodeBlock 表示 Unicode 规范中字符块的一系列字符子集。 |
字段摘要 | |
---|---|
static byte |
COMBINING_SPACING_MARK Unicode 规范中的常规类别“Mc”。 |
static byte |
CONNECTOR_PUNCTUATION Unicode 规范中的常规类别“Pc”。 |
static byte |
CONTROL Unicode 规范中的常规类别“Cc”。 |
static byte |
CURRENCY_SYMBOL Unicode 规范中的常规类别“Sc”。 |
static byte |
DASH_PUNCTUATION Unicode 规范中的常规类别“Pd”。 |
static byte |
DECIMAL_DIGIT_NUMBER Unicode 规范中的常规类别“Nd”。 |
static byte |
DIRECTIONALITY_ARABIC_NUMBER Unicode 规范中的弱双向字符类型“AN”。 |
static byte |
DIRECTIONALITY_BOUNDARY_NEUTRAL Unicode 规范中的弱双向字符类型“BN”。 |
static byte |
DIRECTIONALITY_COMMON_NUMBER_SEPARATOR Unicode 规范中的弱双向字符类型“CS”。 |
static byte |
DIRECTIONALITY_EUROPEAN_NUMBER Unicode 规范中的弱双向字符类型“EN”。 |
static byte |
DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR Unicode 规范中的弱双向字符类型“ES”。 |
static byte |
DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR Unicode 规范中的弱双向字符类型“ET”。 |
static byte |
DIRECTIONALITY_LEFT_TO_RIGHT Unicode 规范中的强双向字符类型“L”。 |
static byte |
DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING Unicode 规范中的强双向字符类型“LRE”。 |
static byte |
DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE Unicode 规范中的强双向字符类型“LRO”。 |
static byte |
DIRECTIONALITY_NONSPACING_MARK Unicode 规范中的弱双向字符类型“NSM”。 |
static byte |
DIRECTIONALITY_OTHER_NEUTRALS Unicode 规范中的非特定双向字符类型“ON”。 |
static byte |
DIRECTIONALITY_PARAGRAPH_SEPARATOR Unicode 规范中的非特定双向字符类型“B”。 |
static byte |
DIRECTIONALITY_POP_DIRECTIONAL_FORMAT Unicode 规范中的弱双向字符类型“PDF”。 |
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT Unicode 规范中的强双向字符类型“R”。 |
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC Unicode 规范中的强双向字符类型“AL”。 |
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING Unicode 规范中的强双向字符类型“RLE”。 |
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE Unicode 规范中的强双向字符类型“RLO”。 |
static byte |
DIRECTIONALITY_SEGMENT_SEPARATOR Unicode 规范中的非特定双向字符类型“S”。 |
static byte |
DIRECTIONALITY_UNDEFINED 未定义的双向字符类型。 |
static byte |
DIRECTIONALITY_WHITESPACE Unicode 规范中的非特定双向字符类型“WS”。 |
static byte |
ENCLOSING_MARK Unicode 规范中的常规类别“Me”。 |
static byte |
END_PUNCTUATION Unicode 规范中的常规类别“Pe”。 |
static byte |
FINAL_QUOTE_PUNCTUATION Unicode 规范中的常规类别“Pf”。 |
static byte |
FORMAT Unicode 规范中的常规类别“Cf”。 |
static byte |
INITIAL_QUOTE_PUNCTUATION Unicode 规范中的常规类别“Pi”。 |
static byte |
LETTER_NUMBER Unicode 规范中的常规类别“Nl”。 |
static byte |
LINE_SEPARATOR Unicode 规范中的常规类别“Zl”。 |
static byte |
LOWERCASE_LETTER Unicode 规范中的常规类别“Ll”。 |
static byte |
MATH_SYMBOL Unicode 规范中的常规类别“Sm”。 |
static int |
MAX_CODE_POINT Unicode 代码点的最大值。 |
static char |
MAX_HIGH_SURROGATE UTF-16 编码中的 Unicode 高代理项代码单元的最大值。 |
static char |
MAX_LOW_SURROGATE UTF-16 编码中的 Unicode 低代理项代码单元的最大值。 |
static int |
MAX_RADIX 可用于与字符串相互转换的最大基数。 |
static char |
MAX_SURROGATE UTF-16 编码中的 Unicode 代理项代码单元的最大值。 |
static char |
MAX_VALUE 此字段的常量值是 char 类型的最大值,即 '\uFFFF' 。 |
static int |
MIN_CODE_POINT Unicode 代码点的最小值。 |
static char |
MIN_HIGH_SURROGATE UTF-16 编码中的 Unicode 高代理项代码单元的最小值。 |
static char |
MIN_LOW_SURROGATE UTF-16 编码中的 Unicode 低代理项代码单元的最小值。 |
static int |
MIN_RADIX 可用于与字符串相互转换的最小基数。 |
static int |
MIN_SUPPLEMENTARY_CODE_POINT 增补代码点的最小值。 |
static char |
MIN_SURROGATE UTF-16 编码中的 Unicode 代理项代码单元的最小值。 |
static char |
MIN_VALUE 此字段的常量值是 char 类型的最小值,即 '\u0000' 。 |
static byte |
MODIFIER_LETTER Unicode 规范中的常规类别“Lm”。 |
static byte |
MODIFIER_SYMBOL Unicode 规范中的常规类别“Sk”。 |
static byte |
NON_SPACING_MARK Unicode 规范中的常规类别“Mn”。 |
static byte |
OTHER_LETTER Unicode 规范中的常规类别“Lo”。 |
static byte |
OTHER_NUMBER Unicode 规范中的常规类别“No”。 |
static byte |
OTHER_PUNCTUATION Unicode 规范中的常规类别“Po”。 |
static byte |
OTHER_SYMBOL Unicode 规范中的常规类别“So”。 |
static byte |
PARAGRAPH_SEPARATOR Unicode 规范中的常规类别“Zp”。 |
static byte |
PRIVATE_USE Unicode 规范中的常规类别“Co”。 |
static int |
SIZE 用来以无符号二进制形式表示 char 值的位数。 |
static byte |
SPACE_SEPARATOR Unicode 规范中的常规类别“Zs”。 |
static byte |
START_PUNCTUATION Unicode 规范中的常规类别“Ps”。 |
static byte |
SURROGATE Unicode 规范中的常规类别“Cs”。 |
static byte |
TITLECASE_LETTER Unicode 规范中的常规类别“Lt”。 |
static Class<Character> |
TYPE 表示基本类型 char 的 Class 实例。 |
static byte |
UNASSIGNED Unicode 规范中的常规类别“Cn”。 |
static byte |
UPPERCASE_LETTER Unicode 规范中的常规类别“Lu”。 |
构造方法摘要 | |
---|---|
Character(char value) 构造一个新分配的 Character 对象,用以表示指定的 char 值。 |
方法摘要 | |
---|---|
static int |
charCount(int codePoint) 确定表示指定字符(Unicode 代码点)所需的 char 值的数量。 |
char |
charValue() 返回此 Character 对象的值。 |
static int |
codePointAt(char[] a, int index) 返回 char 数组的给定索引上的代码点。 |
static int |
codePointAt(char[] a, int index, int limit) 返回 char 数组的给定索引上的代码点,该数组中只有那些具有小于 limit 的 index 值的数组元素可以使用。 |
static int |
codePointAt(CharSequence seq, int index) 返回 CharSequence 的给定索引上的代码点。 |
static int |
codePointBefore(char[] a, int index) 返回 char 数组的给定索引前面的代码点。 |
static int |
codePointBefore(char[] a, int index, int start) 返回 char 数组的给定索引前面的代码点,该数组中只有那些具有大于等于 start 的 index 值的数组元素可以使用。 |
static int |
codePointBefore(CharSequence seq, int index) 返回 CharSequence 的给定索引前面的代码点。 |
static int |
codePointCount(char[] a, int offset, int count) 返回 char 数组参数的子数组中 Unicode 代码点的数量。 |
static int |
codePointCount(CharSequence seq, int beginIndex, int endIndex) 返回指定字符序列的文本范围内的 Unicode 代码点数量。 |
int |
compareTo(Character anotherCharacter) 根据数字比较两个 Character 对象。 |
static int |
digit(char ch, int radix) 返回使用指定基数的字符 ch 的数值。 |
static int |
digit(int codePoint, int radix) 返回使用指定基数的指定字符(Unicode 代码点)的数值。 |
boolean |
equals(Object obj) 将此对象与指定对象比较。 |
static char |
forDigit(int digit, int radix) 确定使用指定基数的特定数字的字符表示形式。 |
static byte |
getDirectionality(char ch) 返回给定字符的 Unicode 方向属性。 |
static byte |
getDirectionality(int codePoint) 返回给定字符(Unicode 代码点)的 Unicode 方向属性。 |
static int |
getNumericValue(char ch) 返回指定的 Unicode 字符表示的 int 值。 |
static int |
getNumericValue(int codePoint) 返回指定字符(Unicode 代码点)表示的 int 值。 |
static int |
getType(char ch) 返回一个指示字符的常规类别的值。 |
static int |
getType(int codePoint) 返回一个指示字符的常规类别的值。 |
int |
hashCode() 返回此 Character 的哈希码。 |
static boolean |
isDefined(char ch) 确定字符是否被定义为 Unicode 中的字符。 |
static boolean |
isDefined(int codePoint) 确定字符(Unicode 代码点)是否被定义为 Unicode 中的字符。 |
static boolean |
isDigit(char ch) 确定指定字符是否为数字。 |
static boolean |
isDigit(int codePoint) 确定指定字符(Unicode 代码点)是否为数字。 |
static boolean |
isHighSurrogate(char ch) 确定给出的 char 值是否为一个高代理项代码单元(也称为前导代理项代码单元)。 |
static boolean |
isIdentifierIgnorable(char ch) 确定是否应该认为指定字符是 Java 标识符或 Unicode 标识符中可忽略的一个字符。 |
static boolean |
isIdentifierIgnorable(int codePoint) 确定是否应该认为指定字符(Unicode 代码点)是 Java 标识符或 Unicode 标识符中可忽略的一个字符。 |
static boolean |
isISOControl(char ch) 确定指定字符是否为 ISO 控制字符。 |
static boolean |
isISOControl(int codePoint) 确定引用的字符(Unicode 代码点)是否为 ISO 控制字符。 |
static boolean |
isJavaIdentifierPart(char ch) 确定指定字符是否可以是 Java 标识符中首字符以外的部分。 |
static boolean |
isJavaIdentifierPart(int codePoint) 确定字符(Unicode 代码点)是否可以是 Java 标识符中首字符以外的部分。 |
static boolean |
isJavaIdentifierStart(char ch) 确定是否允许将指定字符作为 Java 标识符中的首字符。 |
static boolean |
isJavaIdentifierStart(int codePoint) 确定是否允许将字符(Unicode 代码点)作为 Java 标识符中的首字符。 |
static boolean |
isJavaLetter(char ch) 已过时。 由 isJavaIdentifierStart(char) 取代。 |
static boolean |
isJavaLetterOrDigit(char ch) 已过时。 由 isJavaIdentifierPart(char) 取代。 |
static boolean |
isLetter(char ch) 确定指定字符是否为字母。 |
static boolean |
isLetter(int codePoint) 确定指定字符(Unicode 代码点)是否为字母。 |
static boolean |
isLetterOrDigit(char ch) 确定指定字符是否为字母或数字。 |
static boolean |
isLetterOrDigit(int codePoint) 确定指定字符(Unicode 代码点)是否为字母或数字。 |
static boolean |
isLowerCase(char ch) 确定指定字符是否为小写字母。 |
static boolean |
isLowerCase(int codePoint) 确定指定字符(Unicode 代码点)是否为小写字母。 |
static boolean |
isLowSurrogate(char ch) 确定给定 char 值是否一个低代理项代码单元(也称为尾部代理项代码单元)。 |
static boolean |
isMirrored(char ch) 确定指定字符依据 Unicode 规范是否对称。 |
static boolean |
isMirrored(int codePoint) 确定指定字符(Unicode 代码点)依据 Unicode 规范是否对称。 |
static boolean |
isSpace(char ch) 已过时。 由 isWhitespace(char) 取代。 |
static boolean |
isSpaceChar(char ch) 确定指定字符是否为 Unicode 空白字符。 |
static boolean |
isSpaceChar(int codePoint) 确定指定字符(Unicode 代码点)是否为 Unicode 空白字符。 |
static boolean |
isSupplementaryCodePoint(int codePoint) 确定指定字符(Unicode 代码点)是否在增补字符范围内。 |
static boolean |
isSurrogatePair(char high, char low) 确定指定的 char 值对是否为有效的代理项对。 |
static boolean |
isTitleCase(char ch) 确定指定字符是否为首字母大写字符。 |
static boolean |
isTitleCase(int codePoint) 确定指定字符(Unicode 代码点)是否为首字母大写字符。 |
static boolean |
isUnicodeIdentifierPart(char ch) 确定指定字符是否可以是 Unicode 标识符中首字符以外的部分。 |
static boolean |
isUnicodeIdentifierPart(int codePoint) 确定指定字符(Unicode 代码点)是否可以是 Unicode 标识符中首字符以外的部分。 |
static boolean |
isUnicodeIdentifierStart(char ch) 确定是否允许将指定字符作为 Unicode 标识符中的首字符。 |
static boolean |
isUnicodeIdentifierStart(int codePoint) 确定是否允许将指定字符(Unicode 代码点)作为 Unicode 标识符中的首字符。 |
static boolean |
isUpperCase(char ch) 确定指定字符是否为大写字母。 |
static boolean |
isUpperCase(int codePoint) 确定指定字符(Unicode 代码点)是否为大写字母。 |
static boolean |
isValidCodePoint(int codePoint) 确定指定的代码点是否为从 0x0000 到 0x10FFFF 范围之内的有效 Unicode 代码点值。 |
static boolean |
isWhitespace(char ch) 确定指定字符依据 Java 标准是否为空白字符。 |
static boolean |
isWhitespace(int codePoint) 确定指定字符(Unicode 代码点)依据 Java 标准是否为空白字符。 |
static int |
offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) 返回给定 char 子数组中的索引,它是从给定 index 到 codePointOffset 代码点的偏移量。 |
static int |
offsetByCodePoints(CharSequence seq, int index, int codePointOffset) 返回给定字符序列中的索引,它是从给定 index 到 codePointOffset 代码点的偏移量。 |
static char |
reverseBytes(char ch) 返回通过反转指定 char 值中的字节顺序而获得的值。 |
static char[] |
toChars(int codePoint) 将指定的字符(Unicode 代码点)转换成其存储在 char 数组中的 UTF-16 表示形式。 |
static int |
toChars(int codePoint, char[] dst, int dstIndex) 将指定字符(Unicode 代码点)转换为其 UTF-16 表示形式。 |
static int |
toCodePoint(char high, char low) 将指定的代理项对转换为其增补代码点值。 |
static char |
|