"Salut, Amigo ! C'est encore moi. J'aimerais vous parler d'une autre classe d'enveloppe assez simple. Aujourd'hui, nous allons parler de Personnage, l'enveloppe pour char."

"Cette classe est aussi assez simple."

Code
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;
 }
}

"Il a les éléments suivants :"

1) Un constructeur qui prend la valeur interne et une méthode charValue qui la renvoie.

2) Une méthode valueOf qui renvoie des objets Character, mais met en cache des objets avec des valeurs comprises entre 0 et 127. Tout comme Integer, Short et Byte.

3) méthodes hashCode() et equals - encore une fois, il n'y a rien de surprenant ici.

"Et il a beaucoup d'autres méthodes utiles (non présentées ci-dessus). Je vais en énumérer quelques-unes pour vous ici :"

Méthode Description
boolean isDefined(char)
Le caractère est-il un caractère Unicode ?
boolean isDigit(char)
Le caractère est-il un chiffre ?
boolean isISOControl(char)
Le personnage est-il un personnage de contrôle ?
boolean isLetter(char)
Le caractère est-il une lettre ?
boolean isJavaLetterOrDigit()
Le caractère est-il une lettre ou un chiffre ?
boolean isLowerCase(char)
Est-ce une lettre minuscule ?
boolean isUpperCase(char)
Est-ce une lettre majuscule ?
boolean isSpaceChar(char)
Le caractère est-il un espace ou quelque chose de similaire (il y a beaucoup de caractères invisibles) ?
boolean isTitleCase(char)
Le caractère est-il un caractère de casse de titre ?

"Merci, Kim. Je pense que certaines de ces méthodes me seront utiles."