8.1. A Character osztály

Egy Character típusú objektum egyetlen karakter értéket tartalmaz. A Character objektumot az egyszerű char változó helyett használjuk, amikor objektum szükséges, például: amikor átadunk egy karakter értéket egy metódusnak, ami megváltoztatja az értéket, vagy amikor egy karakter értéket helyezünk el egy adattárolóban, mint például egy ArrayList-ben, ami objektumokat tud csak tárolni, primitív értékeket nem.

Megjegyzés: a burkoló (csomagoló) osztályokról a következő fejezetben lesz szó.

A következő példaprogram (CharacterDemo) létrehoz néhány Character objektumot, és megjelenít róluk néhány információt. A Character osztályhoz tartozó kód az alábbiakban látható:

public class CharacterDemo {
    public static void main(String args[]) {
        Character a = new Character('a');
        Character a2 = new Character('a');
        Character b = new Character('b');

        int difference = a.compareTo(b);

        if (difference == 0) {
            System.out.println("a is equal to b.");
        } else if (difference < 0) {
            System.out.println("a is less than b.");
        } else if (difference > 0) {
            System.out.println("a is greater than b.");
        }
        System.out.println("a is "
            + ((a.equals(a2)) ? "equal" : "not equal")
            + " to a2.");
        System.out.println("The character " + a.toString()
            + " is " + (Character.isUpperCase(a.charValue()) ?
                 "upper" : "lower")
            + "case.");
    }
}

A program kimenete a következő lesz:

a is less than b.
a is equal to a2.
The character a is lowercase.

A fenti példában a Character.isUpperCase(a.charValue()) függvény adja az a nevű Character objektum kódját. Ez azért van, mert az isUppercase metódus char típusú paramétert vár. Ha a JDK 5.0-t vagy újabb fejlesztőkörnyezetet használunk, akkor ennek a metódusnak megadhatjuk a Character típusú objektumot is:

Character.isUpperCase(a)

A CharacterDemo program a Character osztály alábbi konstruktorait, illetve metódusait hívja meg:

  • Character(char): A Character osztály egyetlen konstruktora, amely létrehoz egy Character objektumot, melynek értékét a paraméterben adjuk meg, létrehozás után a Character objektum értéke nem változhat.
  • compareTo(Character): Összehasonlít két Character objektumban tárolt értéket, azt az objektumot, ami meghívta (a példában a), és azt, ami a paraméterben van (b). Visszaad egy egész számot, ami jelzi, hogy az objektum értéke kisebb, egyenlő, vagy nagyobb, mint a paraméterben megadott érték.
  • equals(Object): 2 Character objektumot hasonlít össze. True értékkel tér vissza, ha a két érték egyenlő.
  • toString(): Stringgé konvertálja az objektumot, a sztring 1 karakter hosszú lesz, és a Character objektum értékét tartalmazza.
  • charValue(): Megadja az objektum értékét egyszerű char értékként.
  • isUpperCase(char): Meghatározza, hogy az egyszerű char érték nagybetű-e.

A Character osztály néhány további fontosabb tagfüggvénye :

  • boolean isUpperCase(char)
  • boolean isLowerCase(char)
  • char toUpperCase(char)
  • char toLowerCase(char)
  • boolean isLetter(char)
  • boolean isDigit(char)
  • boolean isLetterOrDigit(char)
  • boolean isWhitespace(char)
  • boolean isSpaceChar(char)
  • boolean isJavaIdentifierStart(char)
  • boolean isJavaIdentifierPart(char)