„Hallo Amigo! Ich bin es wieder. Ich möchte Ihnen von einer weiteren ziemlich einfachen Wrapper-Klasse erzählen. Heute sprechen wir über Character, den Wrapper für char.“

„Diese Klasse ist auch ganz einfach.“

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

„Es hat Folgendes:“

1) Ein Konstruktor, der den internen Wert übernimmt, und eine charValue-Methode, die ihn zurückgibt.

2) Eine valueOf-Methode, die Zeichenobjekte zurückgibt, aber Objekte mit Werten von 0 bis 127 zwischenspeichert. Genau wie Integer, Short und Byte.

3) hashCode()- und equal-Methoden – auch hier gibt es nichts Überraschendes.

„Und es gibt viele andere nützliche Methoden (oben nicht gezeigt). Ich liste hier einige für Sie auf:“

Methode Beschreibung
boolean isDefined(char)
Ist das Zeichen ein Unicode-Zeichen?
boolean isDigit(char)
Ist das Zeichen eine Ziffer?
boolean isISOControl(char)
Ist der Charakter ein Kontrollcharakter?
boolean isLetter(char)
Ist das Zeichen ein Buchstabe?
boolean isJavaLetterOrDigit()
Ist das Zeichen ein Buchstabe oder eine Ziffer?
boolean isLowerCase(char)
Ist das ein Kleinbuchstabe?
boolean isUpperCase(char)
Ist das ein Großbuchstabe?
boolean isSpaceChar(char)
Ist das Zeichen ein Leerzeichen oder etwas Ähnliches (es gibt viele unsichtbare Zeichen)?
boolean isTitleCase(char)
Handelt es sich bei dem Zeichen um ein Titelzeichen?

„Danke, Kim. Ich denke, einige dieser Methoden werden für mich nützlich sein.“