— Привіт, Аміго! Це знову я. Хотіла тобі розповісти ще про один досить простий клас-обертку. Сьогодні йтиметься про 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)
Чи є символ титульним?

— Дякую, Кім, думаю, деякі з цих методів мені знадобляться.