Character is a class available in the java.lang package, and we use the Character class to wrap character literals into an object. The Character class is also an immutable class, similar to other wrapper classes.
java.lang.Character:
public final class java.lang.Character implements java.io.Serializable, java.lang.Comparable<java.lang.Character> {
public static final int MIN_RADIX;
public static final int MAX_RADIX;
public static final char MIN_VALUE;
public static final char MAX_VALUE;
public static final java.lang.Class
public static final byte UNASSIGNED;
public static final byte UPPERCASE_LETTER;
public static final byte LOWERCASE_LETTER;
public static final byte TITLECASE_LETTER;
public static final byte MODIFIER_LETTER;
public static final byte OTHER_LETTER;
public static final byte NON_SPACING_MARK;
public static final byte ENCLOSING_MARK;
public static final byte COMBINING_SPACING_MARK;
public static final byte DECIMAL_DIGIT_NUMBER;
public static final byte LETTER_NUMBER;
public static final byte OTHER_NUMBER;
public static final byte SPACE_SEPARATOR;
public static final byte LINE_SEPARATOR;
public static final byte PARAGRAPH_SEPARATOR;
public static final byte CONTROL;
public static final byte FORMAT;
public static final byte PRIVATE_USE;
public static final byte SURROGATE;
public static final byte DASH_PUNCTUATION;
public static final byte START_PUNCTUATION;
public static final byte END_PUNCTUATION;
public static final byte CONNECTOR_PUNCTUATION;
public static final byte OTHER_PUNCTUATION;
public static final byte MATH_SYMBOL;
public static final byte CURRENCY_SYMBOL;
public static final byte MODIFIER_SYMBOL;
public static final byte OTHER_SYMBOL;
public static final byte INITIAL_QUOTE_PUNCTUATION;
public static final byte FINAL_QUOTE_PUNCTUATION;
static final int ERROR;
public static final byte DIRECTIONALITY_UNDEFINED;
public static final byte DIRECTIONALITY_LEFT_TO_RIGHT;
public static final byte DIRECTIONALITY_RIGHT_TO_LEFT;
public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_ARABIC;
public static final byte DIRECTIONALITY_EUROPEAN_NUMBER;
public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_SEPARATOR;
public static final byte DIRECTIONALITY_EUROPEAN_NUMBER_TERMINATOR;
public static final byte DIRECTIONALITY_ARABIC_NUMBER;
public static final byte DIRECTIONALITY_COMMON_NUMBER_SEPARATOR;
public static final byte DIRECTIONALITY_NONSPACING_MARK;
public static final byte DIRECTIONALITY_BOUNDARY_NEUTRAL;
public static final byte DIRECTIONALITY_PARAGRAPH_SEPARATOR;
public static final byte DIRECTIONALITY_SEGMENT_SEPARATOR;
public static final byte DIRECTIONALITY_WHITESPACE;
public static final byte DIRECTIONALITY_OTHER_NEUTRALS;
public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_EMBEDDING;
public static final byte DIRECTIONALITY_LEFT_TO_RIGHT_OVERRIDE;
public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_EMBEDDING;
public static final byte DIRECTIONALITY_RIGHT_TO_LEFT_OVERRIDE;
public static final byte DIRECTIONALITY_POP_DIRECTIONAL_FORMAT;
public static final char MIN_HIGH_SURROGATE;
public static final char MAX_HIGH_SURROGATE;
public static final char MIN_LOW_SURROGATE;
public static final char MAX_LOW_SURROGATE;
public static final char MIN_SURROGATE;
public static final char MAX_SURROGATE;
public static final int MIN_SUPPLEMENTARY_CODE_POINT;
public static final int MIN_CODE_POINT;
public static final int MAX_CODE_POINT;
public static final int SIZE;
public static final int BYTES;
static final boolean $assertionsDisabled;
public java.lang.Character(char);
public static java.lang.Character valueOf(char);
public char charValue();
public int hashCode();
public static int hashCode(char);
public boolean equals(java.lang.Object);
public java.lang.String toString();
public static java.lang.String toString(char);
public static boolean isValidCodePoint(int);
public static boolean isBmpCodePoint(int);
public static boolean isSupplementaryCodePoint(int);
public static boolean isHighSurrogate(char);
public static boolean isLowSurrogate(char);
public static boolean isSurrogate(char);
public static boolean isSurrogatePair(char, char);
public static int charCount(int);
public static int toCodePoint(char, char);
public static int codePointAt(java.lang.CharSequence, int);
public static int codePointAt(char[], int);
public static int codePointAt(char[], int, int);
static int codePointAtImpl(char[], int, int);
public static int codePointBefore(java.lang.CharSequence, int);
public static int codePointBefore(char[], int);
public static int codePointBefore(char[], int, int);
static int codePointBeforeImpl(char[], int, int);
public static char highSurrogate(int);
public static char lowSurrogate(int);
public static int toChars(int, char[], int);
public static char[] toChars(int);
static void toSurrogates(int, char[], int);
public static int codePointCount(java.lang.CharSequence, int, int);
public static int codePointCount(char[], int, int);
static int codePointCountImpl(char[], int, int);
public static int offsetByCodePoints(java.lang.CharSequence, int, int);
public static int offsetByCodePoints(char[], int, int, int, int);
static int offsetByCodePointsImpl(char[], int, int, int, int);
public static boolean isLowerCase(char);
public static boolean isLowerCase(int);
public static boolean isUpperCase(char);
public static boolean isUpperCase(int);
public static boolean isTitleCase(char);
public static boolean isTitleCase(int);
public static boolean isDigit(char);
public static boolean isDigit(int);
public static boolean isDefined(char);
public static boolean isDefined(int);
public static boolean isLetter(char);
public static boolean isLetter(int);
public static boolean isLetterOrDigit(char);
public static boolean isLetterOrDigit(int);
public static boolean isJavaLetter(char);
public static boolean isJavaLetterOrDigit(char);
public static boolean isAlphabetic(int);
public static boolean isIdeographic(int);
public static boolean isJavaIdentifierStart(char);
public static boolean isJavaIdentifierStart(int);
public static boolean isJavaIdentifierPart(char);
public static boolean isJavaIdentifierPart(int);
public static boolean isUnicodeIdentifierStart(char);
public static boolean isUnicodeIdentifierStart(int);
public static boolean isUnicodeIdentifierPart(char);
public static boolean isUnicodeIdentifierPart(int);
public static boolean isIdentifierIgnorable(char);
public static boolean isIdentifierIgnorable(int);
public static char toLowerCase(char);
public static int toLowerCase(int);
public static char toUpperCase(char);
public static int toUpperCase(int);
public static char toTitleCase(char);
public static int toTitleCase(int);
public static int digit(char, int);
public static int digit(int, int);
public static int getNumericValue(char);
public static int getNumericValue(int);
public static boolean isSpace(char);
public static boolean isSpaceChar(char);
public static boolean isSpaceChar(int);
public static boolean isWhitespace(char);
public static boolean isWhitespace(int);
public static boolean isISOControl(char);
public static boolean isISOControl(int);
public static int getType(char);
public static int getType(int);
public static char forDigit(int, int);
public static byte getDirectionality(char);
public static byte getDirectionality(int);
public static boolean isMirrored(char);
public static boolean isMirrored(int);
public int compareTo(java.lang.Character);
public static int compare(char, char);
static int toUpperCaseEx(int);
static char[] toUpperCaseCharArray(int);
public static char reverseBytes(char);
public static java.lang.String getName(int);
public int compareTo(java.lang.Object);
static {};
}
Important Constructor of java.lang.Character class:
1. public java.lang.Character(char): In the java.lang.Character class, we have only one constructor, which creates an object of the java.lang.Character class, wrapping the specified char literals.
Important Member of java.lang.Character class:
1. public static final char MIN_VALUE: In Java, the Character class or the char primitive data type works with 16-bit UNICODE, and this variable contains the minimum character that can be stored in a char type variable or a java.lang.Character type object. This minimum character is represented as \u0000 in hexadecimal or 0 in decimal.
2. public static final char MAX_VALUE: It holds the maximum character that can be stored in a char type variable or a java.lang.Character type object, which is represented as \uffff in hexadecimal or 65535 in decimal.
3. public static final int SIZE: It represents the number of bits used internally to hold a Character type value, which is 16 bits.
4. public static final int BYTES: It represents the number of bytes used internally to store a Character type value, which is 2 bytes.
5. public static java.lang.CharactervalueOf(char): It returns an object of the java.lang.Character class, and the newly created object wraps the specified char type value as the argument.
6. public char charValue():It returns the char value that is the same as the char value of the current working object.
7. public inthashCode(): The hashCode() method is overridden in the java.lang.Character class, and it returns the Unicode value of the current working object's char value as the hash code.
8. public boolean equals(java.lang.Object): The equals() method in the java.lang.Character class is overridden from the java.lang.Object class, and it compares two objects of the java.lang.Character class based on their char-value UNICODE.
9. public intcompareTo(java.lang.Object): As we know, the java.lang.Character class implements the java.lang.Comparable interface, and in the Comparable interface, we have an abstract method compareTo(), which is overridden in the java.lang.Character class.
It subtracts the UNICODE values of the current working object's char literals and the specified argument object's char literals, respectively, and returns the result.
public class JTC {
public static void main(String[] args) {
Character character1 = new Character('A');
System.out.println("character1 :- " + character1);
System.out.println("Character.MIN_VALUE in Hexadecimal:- \\u" +
Integer.toHexString(Character.MIN_VALUE | 0x10000).substring(1));
System.out.println("Character.MIN_VALUE in Decimal :- " + (int) Character.MIN_VALUE);
System.out.println("Character.MAX_VALUE in Hexadecimal:- \\u" +
Integer.toHexString(Character.MAX_VALUE | 0x10000).substring(1));
System.out.println("Character.MAX_VALUE in Decimal :- " + (int) Character.MAX_VALUE);
System.out.println("Character.SIZE :- " + Character.SIZE);
System.out.println("Character.BYTE :- " + Character.BYTES);
Character character2 = Character.valueOf('V');
System.out.println("charcter2 :- " + character2);
char c1 = character2.charValue();
System.out.println("c1 :- " + c1);
System.out.println("character1.hashCode() :- " + character1.hashCode());
System.out.println("Having different char value :- " + character1.equals(character2));
Character character3 = new Character('V');
System.out.println("Having same char value :- " + character2.equals(character3));
System.out.println("A[65] - V[86] :- " + character1.compareTo(character2));
System.out.println("V[86] - A[65] :- " + character2.compareTo(character1));
System.out.println("V[86] - V[86] :- " + character2.compareTo(character3));
}
}
character1 :- A Character.MIN_VALUE in Hexadecimal:- \u0000 Character.MIN_VALUE in Decimal :- 0 Character.MAX_VALUE in Hexadecimal:- \uffff Character.MAX_VALUE in Decimal :- 65535 Character.SIZE :- 16 Character.BYTE :- 2 charcter2 :- V c1 :- V character1.hashCode() :- 65 Having different char value :- false Having same char value :- true A[65] - V[86] :- -21 V[86] - A[65] :- 21 V[86] - V[86] :- 0