java.lang.CharacterCharacter class wraps a value of the primitive
type char in an object. An object of type
Character contains a single field whose type is
char.
In addition, this class provides several methods for determining a character's category (lowercase letter, digit, etc.) and for converting characters from uppercase to lowercase and vice versa.
Character information is based on the Unicode Standard, version 4.0.
The methods and data of class Character are defined by
the information in the UnicodeData file that is part of the
Unicode Character Database maintained by the Unicode
Consortium. This file specifies various properties including name
and general category for every defined Unicode code point or
character range.
The file and its description are available from the Unicode Consortium at:
The char data type (and therefore the value that a
Character object encapsulates) are based on the
original Unicode specification, which defined characters as
fixed-width 16-bit entities. The Unicode standard has since been
changed to allow for characters whose representation requires more
than 16 bits. The range of legal code points is now
U+0000 to U+10FFFF, known as Unicode scalar value.
(Refer to the
definition of the U+n notation in the Unicode
standard.)
The set of characters from U+0000 to U+FFFF is sometimes
referred to as the Basic Multilingual Plane (BMP). Characters whose code points are greater
than U+FFFF are called supplementary characters. The Java
2 platform uses the UTF-16 representation in char
arrays and in the String and StringBuffer
classes. In this representation, supplementary characters are
represented as a pair of char values, the first from
the high-surrogates range, (\uD800-\uDBFF), the
second from the low-surrogates range
(\uDC00-\uDFFF).
A char value, therefore, represents Basic
Multilingual Plane (BMP) code points, including the surrogate
code points, or code units of the UTF-16 encoding. An
int value represents all Unicode code points,
including supplementary code points. The lower (least significant)
21 bits of int are used to represent Unicode code
points and the upper (most significant) 11 bits must be zero.
Unless otherwise specified, the behavior with respect to
supplementary characters and surrogate char values is
as follows:
char value cannot support
supplementary characters. They treat char values from the
surrogate ranges as undefined characters. For example,
Character.isLetter('\uD840') returns false, even though
this specific value if followed by any low-surrogate value in a string
would represent a letter.
int value support all
Unicode characters, including supplementary characters. For
example, Character.isLetter(0x2F81A) returns
true because the code point value represents a letter
(a CJK ideograph).
In the Java SE API documentation, Unicode code point is
used for character values in the range between U+0000 and U+10FFFF,
and Unicode code unit is used for 16-bit
char values that are code units of the UTF-16
encoding. For more information on Unicode terminology, refer to the
Unicode Glossary.
| Nested Class Summary | ||
static class |
Character.Subset Instances of this class represent particular subsets of the Unicode
character set. |
|
final static class |
Character.UnicodeBlock A family of character subsets representing the character blocks in the
Unicode specification. |
|
| Field Summary | ||
static byte |
COMBINING_SPACING_MARK General category "Mc" in the Unicode specification. |
|
static byte |
CONNECTOR_PUNCTUATION General category "Pc" in the Unicode specification. |
|
static byte |
CONTROL General category "Cc" in the Unicode specification. |
|
static byte |
CURRENCY_SYMBOL General category "Sc" in the Unicode specification. |
|
static byte |
DASH_PUNCTUATION General category "Pd" in the Unicode specification. |
|
static byte |
DECIMAL_DIGIT_NUMBER General category "Nd" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_ARABIC_NUMBER Weak bidirectional character type "AN" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_BOUNDARY_NEUTRAL Weak bidirectional character type "BN" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_COMMON_NUMBER_SEPARATOR Weak bidirectional character type "CS" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_EUROPEAN_NUMBER Weak bidirectional character type "EN" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR Weak bidirectional character type "ES" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR Weak bidirectional character type "ET" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_LEFT_TO_RIGHT Strong bidirectional character type "L" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING Strong bidirectional character type "LRE" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE Strong bidirectional character type "LRO" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_NONSPACING_MARK Weak bidirectional character type "NSM" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_OTHER_NEUTRALS Neutral bidirectional character type "ON" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_PARAGRAPH_SEPARATOR Neutral bidirectional character type "B" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_POP_DIRECTIONAL_FORMAT Weak bidirectional character type "PDF" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT Strong bidirectional character type "R" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC Strong bidirectional character type "AL" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING Strong bidirectional character type "RLE" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE Strong bidirectional character type "RLO" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_SEGMENT_SEPARATOR Neutral bidirectional character type "S" in the Unicode specification. |
|
static byte |
DIRECTIONALITY_UNDEFINED Undefined bidirectional character type. |
|
static byte |
DIRECTIONALITY_WHITESPACE Neutral bidirectional character type "WS" in the Unicode specification. |
|
static byte |
ENCLOSING_MARK General category "Me" in the Unicode specification. |
|
static byte |
END_PUNCTUATION General category "Pe" in the Unicode specification. |
|
static byte |
FINAL_QUOTE_PUNCTUATION General category "Pf" in the Unicode specification. |
|
static byte |
FORMAT General category "Cf" in the Unicode specification. |
|
static byte |
INITIAL_QUOTE_PUNCTUATION General category "Pi" in the Unicode specification. |
|
static byte |
LETTER_NUMBER General category "Nl" in the Unicode specification. |
|
static byte |
LINE_SEPARATOR General category "Zl" in the Unicode specification. |
|
static byte |
LOWERCASE_LETTER General category "Ll" in the Unicode specification. |
|
static byte |
MATH_SYMBOL General category "Sm" in the Unicode specification. |
|
static int |
MAX_CODE_POINT The maximum value of a Unicode code point. |
|
static char |
MAX_HIGH_SURROGATE The maximum value of a Unicode high-surrogate code unit in the
UTF-16 encoding. |
|
static char |
MAX_LOW_SURROGATE The maximum value of a Unicode low-surrogate code unit in the
UTF-16 encoding. |
|
static int |
MAX_RADIX The maximum radix available for conversion to and from strings. |
|
static char |
MAX_SURROGATE The maximum value of a Unicode surrogate code unit in the UTF-16 encoding. |
|
static char |
MAX_VALUE The constant value of this field is the largest value of type
char, '\uFFFF'. |
|
static int |
MIN_CODE_POINT The minimum value of a Unicode code point. |
|
static char |
MIN_HIGH_SURROGATE The minimum value of a Unicode high-surrogate code unit in the
UTF-16 encoding. |
|
static char |
MIN_LOW_SURROGATE The minimum value of a Unicode low-surrogate code unit in the
UTF-16 encoding. |
|
static int |
MIN_RADIX The minimum radix available for conversion to and from strings. |
|
static int |
MIN_SUPPLEMENTARY_CODE_POINT The minimum value of a supplementary code point. |
|
static char |
MIN_SURROGATE The minimum value of a Unicode surrogate code unit in the UTF-16 encoding. |
|
static char |
MIN_VALUE The constant value of this field is the smallest value of type
char, '\u0000'. |
|
static byte |
MODIFIER_LETTER General category "Lm" in the Unicode specification. |
|
static byte |
MODIFIER_SYMBOL General category "Sk" in the Unicode specification. |
|
static byte |
NON_SPACING_MARK General category "Mn" in the Unicode specification. |
|
static byte |
OTHER_LETTER General category "Lo" in the Unicode specification. |
|
static byte |
OTHER_NUMBER General category "No" in the Unicode specification. |
|
static byte |
OTHER_PUNCTUATION General category "Po" in the Unicode specification. |
|
static byte |
OTHER_SYMBOL General category "So" in the Unicode specification. |
|
static byte |
PARAGRAPH_SEPARATOR General category "Zp" in the Unicode specification. |
|
static byte |
PRIVATE_USE General category "Co" in the Unicode specification. |
|
static int |
SIZE The number of bits used to represent a char value in unsigned
binary form. |
|
static byte |
SPACE_SEPARATOR General category "Zs" in the Unicode specification. |
|
static byte |
START_PUNCTUATION General category "Ps" in the Unicode specification. |
|
static byte |
SURROGATE General category "Cs" in the Unicode specification. |
|
static byte |
TITLECASE_LETTER General category "Lt" in the Unicode specification. |
|
| TYPE The Class instance representing the primitive type
char. |
||
static byte |
UNASSIGNED General category "Cn" in the Unicode specification. |
|
static byte |
UPPERCASE_LETTER General category "Lu" in the Unicode specification. |
|
| Constructor Summary | ||
| Character(char value) Constructs a newly allocated Character object that
represents the specified char value. |
| Method Summary | ||
static int |
charCount(int codePoint) Determines the number of char values needed to
represent the specified character (Unicode code point). |
|
char |
charValue() Returns the value of this Character object. |
|
static int |
codePointAt(char[] a, int index) Returns the code point at the given index of the
char array. |
|
static int |
codePointAt(char[] a, int index, int limit) Returns the code point at the given index of the
char array, where only array elements with
index less than limit can be used. |
|
static int |
codePointAt(CharSequence seq, int index) Returns the code point at the given index of the
CharSequence. |
|
static int |
codePointBefore(char[] a, int index) Returns the code point preceding the given index of the
char array. |
|
static int |
codePointBefore(char[] a, int index, int start) Returns the code point preceding the given index of the
char array, where only array elements with
index greater than or equal to start
can be used. |
|
static int |
codePointBefore(CharSequence seq, int index) Returns the code point preceding the given index of the
CharSequence. |
|
static int |
codePointCount(char[] a, int offset, int count) Returns the number of Unicode code points in a subarray of the
char array argument. |
|
static int |
codePointCount(CharSequence seq, int beginIndex, int endIndex) Returns the number of Unicode code points in the text range of
the specified char sequence. |
|
int |
compareTo(Character anotherCharacter) Compares two Character objects numerically. |
|
static int |
digit(char ch, int radix) Returns the numeric value of the character ch in the
specified radix. |
|
static int |
digit(int codePoint, int radix) Returns the numeric value of the specified character (Unicode
code point) in the specified radix. |
|
boolean |
equals(Object obj) Compares this object against the specified object. |
|
static char |
forDigit(int digit, int radix) Determines the character representation for a specific digit in
the specified radix. |
|
static byte |
getDirectionality(char ch) Returns the Unicode directionality property for the given
character. |
|
static byte |
getDirectionality(int codePoint) Returns the Unicode directionality property for the given
character (Unicode code point). |
|
static int |
getNumericValue(char ch) Returns the int value that the specified Unicode
character represents. |
|
static int |
getNumericValue(int codePoint) Returns the int value that the specified
character (Unicode code point) represents. |
|
static int |
getType(char ch) Returns a value indicating a character's general category. |
|
static int |
getType(int codePoint) Returns a value indicating a character's general category. |
|
int |
hashCode() Returns a hash code for this Character. |
|
static boolean |
isDefined(char ch) Determines if a character is defined in Unicode. |
|
static boolean |
isDefined(int codePoint) Determines if a character (Unicode code point) is defined in Unicode. |
|
static boolean |
isDigit(char ch) Determines if the specified character is a digit. |
|
static boolean |
isDigit(int codePoint) Determines if the specified character (Unicode code point) is a digit. |
|
static boolean |
isHighSurrogate(char ch) Determines if the given char value is a
high-surrogate code unit (also known as leading-surrogate
code unit). |
|
static boolean |
isIdentifierIgnorable(char ch) Determines if the specified character should be regarded as
an ignorable character in a Java identifier or a Unicode identifier. |
|
static boolean |
isIdentifierIgnorable(int codePoint) Determines if the specified character (Unicode code point) should be regarded as
an ignorable character in a Java identifier or a Unicode identifier. |
|
static boolean |
isISOControl(char ch) Determines if the specified character is an ISO control
character. |
|
static boolean |
isISOControl(int codePoint) Determines if the referenced character (Unicode code point) is an ISO control
character. |
|
static boolean |
isJavaIdentifierPart(char ch) Determines if the specified character may be part of a Java
identifier as other than the first character. |
|
static boolean |
isJavaIdentifierPart(int codePoint) Determines if the character (Unicode code point) may be part of a Java
identifier as other than the first character. |
|
static boolean |
isJavaIdentifierStart(char ch) Determines if the specified character is
permissible as the first character in a Java identifier. |
|
static boolean |
isJavaIdentifierStart(int codePoint) Determines if the character (Unicode code point) is
permissible as the first character in a Java identifier. |
|
static boolean |
isJavaLetter(char ch) Deprecated. Replaced by isJavaIdentifierStart(char). |
|
static boolean |
isJavaLetterOrDigit(char ch) Deprecated. Replaced by isJavaIdentifierPart(char). |
|
static boolean |
isLetter(char ch) Determines if the specified character is a letter. |
|
static boolean |
isLetter(int codePoint) Determines if the specified character (Unicode code point) is a letter. |
|
static boolean |
isLetterOrDigit(char ch) Determines if the specified character is a letter or digit. |
|
static boolean |
isLetterOrDigit(int codePoint) Determines if the specified character (Unicode code point) is a letter or digit. |
|
static boolean |
isLowerCase(char ch) Determines if the specified character is a lowercase character. |
|
static boolean |
isLowerCase(int codePoint) Determines if the specified character (Unicode code point) is a
lowercase character. |
|
static boolean |
isLowSurrogate(char ch) Determines if the given char value is a
low-surrogate code unit (also known as trailing-surrogate code
unit). |
|
static boolean |
isMirrored(char ch) Determines whether the character is mirrored according to the
Unicode specification. |
|
static boolean |
isMirrored(int codePoint) Determines whether the specified character (Unicode code point)
is mirrored according to the Unicode specification. |
|
static boolean |
isSpace(char ch) Deprecated. Replaced by isWhitespace(char). |
|
static boolean |
isSpaceChar(char ch) Determines if the specified character is a Unicode space character. |
|
static boolean |
isSpaceChar(int codePoint) Determines if the specified character (Unicode code point) is a
Unicode space character. |
|
static boolean |
isSupplementaryCodePoint(int codePoint) Determines whether the specified character (Unicode code point)
is in the supplementary character range. |
|
static boolean |
isSurrogatePair(char high, char low) Determines whether the specified pair of char
values is a valid surrogate pair. |
|
static boolean |
isTitleCase(char ch) Determines if the specified character is a titlecase character. |
|
static boolean |
isTitleCase(int codePoint) Determines if the specified character (Unicode code point) is a titlecase character. |
|
static boolean |
isUnicodeIdentifierPart(char ch) Determines if the specified character may be part of a Unicode
identifier as other than the first character. |
|
static boolean |
isUnicodeIdentifierPart(int codePoint) Determines if the specified character (Unicode code point) may be part of a Unicode
identifier as other than the first character. |
|
static boolean |
isUnicodeIdentifierStart(char ch) Determines if the specified character is permissible as the
first character in a Unicode identifier. |
|
static boolean |
isUnicodeIdentifierStart(int codePoint) Determines if the specified character (Unicode code point) is permissible as the
first character in a Unicode identifier. |
|
static boolean |
isUpperCase(char ch) Determines if the specified character is an uppercase character. |
|
static boolean |
isUpperCase(int codePoint) Determines if the specified character (Unicode code point) is an uppercase character. |
|
static boolean |
isValidCodePoint(int codePoint) Determines whether the specified code point is a valid Unicode
code point value in the range of 0x0000 to
0x10FFFF inclusive. |
|
static boolean |
isWhitespace(char ch) Determines if the specified character is white space according to Java. |
|
static boolean |
isWhitespace(int codePoint) Determines if the specified character (Unicode code point) is
white space according to Java. |
|
static int |
offsetByCodePoints(char[] a, int start, int count, int index, int codePointOffset) Returns the index within the given char subarray
that is offset from the given index by
codePointOffset code points. |
|
static int |
offsetByCodePoints(CharSequence seq, int index, int codePointOffset) Returns the index within the given char sequence that is offset
from the given index by codePointOffset
code points. |
|
static char |
reverseBytes(char ch) Returns the value obtained by reversing the order of the bytes in the
specified char value. |
|
static char[] |
toChars(int codePoint) Converts the specified character (Unicode code point) to its
UTF-16 representation stored in a char array. |
|
static int |
toChars(int codePoint, char[] dst, int dstIndex) Converts the specified character (Unicode code point) to its
UTF-16 representation. |
|
static int |
toCodePoint(char high, char low) Converts the specified surrogate pair to its supplementary code
point value. |
|
static char |
toLowerCase(char ch) Converts the character argument to lowercase using case
mapping information from the UnicodeData file. |
|
static int |
toLowerCase(int codePoint) Converts the character (Unicode code point) argument to
lowercase using case mapping information from the UnicodeData
file. |
|
| toString() Returns a String object representing this
Character's value. |
||
static String |
toString(char c) Returns a String object representing the
specified char. |
|
static char |
toTitleCase(char ch) Converts the character argument to titlecase using case mapping
information from the UnicodeData file. |
|
static int |
toTitleCase(int codePoint) Converts the character (Unicode code point) argument to titlecase using case mapping
information from the UnicodeData file. |
|
static char |
toUpperCase(char ch) Converts the character argument to uppercase using case mapping
information from the UnicodeData file. |
|
static int |
toUpperCase(int codePoint) Converts the character (Unicode code point) argument to
uppercase using case mapping information from the UnicodeData
file. |
|
static Character |
valueOf(char c) Returns a Character instance representing the specified
char value. |
|
| Methods inherited from class java.lang.Object |
| clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
digit method, the forDigit
method, and the toString method of class
Integer.digit method, the forDigit
method, and the toString method of class
Integer.char, '\u0000'.char, '\uFFFF'.Class instance representing the primitive type
char.char
values have undefined directionality in the Unicode specification.Character object that
represents the specified char value.Character object.Character object.char value represented by
this object.Character.true if and only if the argument is not
null and is a Character object that
represents the same char value as this object.true if the objects are the same;
false otherwise.String object representing this
Character's value. The result is a string of
length 1 whose sole component is the primitive
char value represented by this
Character object.String object representing the
specified char. The result is a string of length
1 consisting solely of the specified char.char to be convertedchar0x0000 to
0x10FFFF inclusive. This method is equivalent to
the expression:
codePoint >= 0x0000 && codePoint <= 0x10FFFF
true if the specified code point value
is a valid code point value;
false otherwise.codePoint >= 0x10000 && codePoint <= 0x10FFFF
true if the specified character is in the Unicode
supplementary character range; false otherwise.char value is a
high-surrogate code unit (also known as leading-surrogate
code unit). Such values do not represent characters by
themselves, but are used in the representation of supplementary characters in the
UTF-16 encoding.
This method returns true if and only if
isch >= '\uD800' && ch <= '\uDBFF'
true.char value to be tested.true if the char value
is between '\uD800' and '\uDBFF' inclusive;
false otherwise.char value is a
low-surrogate code unit (also known as trailing-surrogate code
unit). Such values do not represent characters by themselves,
but are used in the representation of supplementary characters in the UTF-16 encoding.
This method returns true if and only if
isch >= '\uDC00' && ch <= '\uDFFF'
true.char value to be tested.true if the char value
is between '\uDC00' and '\uDFFF' inclusive;
false otherwise.char
values is a valid surrogate pair. This method is equivalent to
the expression:
isHighSurrogate(high) && isLowSurrogate(low)
true if the specified high and
low-surrogate code values represent a valid surrogate pair;
false otherwise.char values needed to
represent the specified character (Unicode code point). If the
specified character is equal to or greater than 0x10000, then
the method returns 2. Otherwise, the method returns 1.
This method doesn't validate the specified character to be a valid Unicode code point. The caller must validate the character value using isValidCodePoint if necessary.
CharSequence. If the char value at
the given index in the CharSequence is in the
high-surrogate range, the following index is less than the
length of the CharSequence, and the
char value at the following index is in the
low-surrogate range, then the supplementary code point
corresponding to this surrogate pair is returned. Otherwise,
the char value at the given index is returned.char values (Unicode code
units)char values (Unicode
code units) in seq to be convertedseq is null.char array. If the char value at
the given index in the char array is in the
high-surrogate range, the following index is less than the
length of the char array, and the
char value at the following index is in the
low-surrogate range, then the supplementary code point
corresponding to this surrogate pair is returned. Otherwise,
the char value at the given index is returned.char arraychar values (Unicode
code units) in the char array to be converteda is null.index is negative or not less than
the length of the char array.char array, where only array elements with
index less than limit can be used. If
the char value at the given index in the
char array is in the high-surrogate range, the
following index is less than the limit, and the
char value at the following index is in the
low-surrogate range, then the supplementary code point
corresponding to this surrogate pair is returned. Otherwise,
the char value at the given index is returned.char arraychar values (Unicode
code units) in the char array to be convertedchar arraya is null.index
argument is negative or not less than the limit
argument, or if the limit argument is negative or
greater than the length of the char array.CharSequence. If the char value at
(index - 1) in the CharSequence is in
the low-surrogate range, (index - 2) is not
negative, and the char value at (index -
2) in the CharSequence is in the
high-surrogate range, then the supplementary code point
corresponding to this surrogate pair is returned. Otherwise,
the char value at (index - 1) is
returned.CharSequence instanceseq is null.char array. If the char value at
(index - 1) in the char array is in
the low-surrogate range, (index - 2) is not
negative, and the char value at (index -
2) in the char array is in the
high-surrogate range, then the supplementary code point
corresponding to this surrogate pair is returned. Otherwise,
the char value at (index - 1) is
returned.char arraya is null.index
argument is less than 1 or greater than the length of the
char arraychar array, where only array elements with
index greater than or equal to start
can be used. If the char value at (index -
1) in the char array is in the
low-surrogate range, (index - 2) is not less than
start, and the char value at
(index - 2) in the char array is in
the high-surrogate range, then the supplementary code point
corresponding to this surrogate pair is returned. Otherwise,
the char value at (index - 1) is
returned.char arraychar arraya is null.index
argument is not greater than the start argument or
is greater than the length of the char array, or
if the start argument is negative or not less than
the length of the char array.dst[dstIndex], and 1 is returned. If the
specified code point is a supplementary character, its
surrogate values are stored in dst[dstIndex]
(high-surrogate) and dst[dstIndex+1]
(low-surrogate), and 2 is returned.char in which the
codePoint's UTF-16 value is stored.dst
array where the converted value is stored.codePoint is not a valid Unicode code point.dst is null.dstIndex
is negative