"Hej, Amigo! Det är jag igen. Jag skulle vilja berätta om en annan ganska enkel inpackningsklass. Idag ska vi prata om Character, omslaget för röding."

"Den här klassen är också ganska enkel."

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

"Den har följande:"

1) En konstruktor som tar det interna värdet och en charValue-metod som returnerar det.

2) En valueOf-metod som returnerar Character-objekt, men cachar objekt med värden från 0 till 127. Precis som Integer, Short och Byte.

3) hashCode() och är lika med metoder — återigen, det är inget förvånande här.

"Och den har många andra användbara metoder (visas inte ovan). Jag ska lista några åt dig här:"

Metod Beskrivning
boolean isDefined(char)
Är tecknet ett Unicode-tecken?
boolean isDigit(char)
Är tecknet en siffra?
boolean isISOControl(char)
Är karaktären en kontrollkaraktär?
boolean isLetter(char)
Är karaktären en bokstav?
boolean isJavaLetterOrDigit()
Är tecknet en bokstav eller en siffra?
boolean isLowerCase(char)
Är detta en liten bokstav?
boolean isUpperCase(char)
Är detta en stor bokstav?
boolean isSpaceChar(char)
Är karaktären ett mellanslag eller något liknande (det finns många osynliga tecken)?
boolean isTitleCase(char)
Är karaktären ett skiftläge?

"Tack, Kim. Jag tror att några av dessa metoder kommer att vara användbara för mig."