— Привет, Амиго! Это снова я. Хотела тебе рассказать еще об одном достаточно простом классе-обёртке. Сегодня речь пойдет о Character – обертка над char.

Код
class Character
{
 private final char value;

 Character(char value) 
 {
  this.value = value;
 }

 public char charValue() 
 {
  return value;
 }

 static final Character cache[] = new Character[127 + 1];

 public static Character valueOf(char c)
 {
  if (c <= 127)
   return cache[(int)c];

  return new Character(c);
 }

 public int hashCode() 
 {
  return (int)value;
 }

 public boolean equals(Object obj) 
 {
  if (obj instanceof Character) 
  {
   return value == ((Character)obj).charValue();
  }
  return false;
 }
}

В нем есть:

1) Конструктор, который принимает внутреннее значение и метод charValue, который его возвращает.

2) Метод valueOf, который возвращает новые объекты Character, но кэширует объекты со значениями от 0 до 127. Как в Integer, Short и Byte.

3) Методы hashCode() & equals – тут нас тоже ничем не удивишь.

А еще в нем есть много полезных методов (не показаны выше). Некоторые из них я тебе сейчас перечислю:

Метод Описание
boolean isDefined(char)
Является ли символ символом Unicode?
boolean isDigit(char)
Является ли символ цифрой?
boolean isISOControl(char)
Является ли символ управляющим?
boolean isLetter(char)
Является ли символ буквой?
boolean isJavaLetterOrDigit()
Является ли символ буквой или цифрой?
boolean isLowerCase(char)
Это символ в нижнем регистре (строчная буква)?
boolean isUpperCase(char)
Это символ в верхнем регистре (заглавная буква)?
boolean isSpaceChar(char)
Является ли символ пробелом или его аналогом (есть много невидимых символов)?
boolean isTitleCase(char)
Является ли символ титульным?

— Спасибо, Ким, думаю, некоторые из этих методов мне точно пригодятся.