java.lang

接口
异常
错误
注释
java.lang.Object
  继承者 java.lang.Character
所有已实现的接口:
Serializable, Comparable< Character>

public final class Character
     
extends Object
implements Serializable, Comparable< Character>

Character 类在对象中包装一个基本类型 char 的值。Character 类型的对象包含类型为 char 的单个字段。

此外,该类提供了几种方法,以确定字符的类别(小写字母,数字,等等),并将字符从大写转换成小写,反之亦然。

字符信息基于 Unicode 标准,版本 4.0。

Character 类的方法和数据是通过 UnicodeData 文件中的信息定义的,该文件是 Unicode Consortium 维护的 Unicode Character Database 的一部分。此文件指定了各种属性,其中包括每个已定义 Unicode 代码点或字符范围的名称和常规类别。

此文件及其描述可从 Unicode Consortium 获得,网址如下:

Unicode 字符表示形式

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 数组以及 StringStringBuffer 类中使用 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

从以下版本开始:
1.0
另请参见:
序列化表格

嵌套类摘要
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
          表示基本类型 charClass 实例。
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 数组的给定索引上的代码点,该数组中只有那些具有小于 limitindex 值的数组元素可以使用。
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 数组的给定索引前面的代码点,该数组中只有那些具有大于等于 startindex 值的数组元素可以使用。
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)
          确定指定的代码点是否为从 0x00000x10FFFF 范围之内的有效 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 子数组中的索引,它是从给定 indexcodePointOffset 代码点的偏移量。
static int offsetByCodePoints(CharSequence seq, int index, int codePointOffset)
          返回给定字符序列中的索引,它是从给定 indexcodePointOffset 代码点的偏移量。
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

JDK 1.6 中文手册