⟨info/⟩

char[]

Primitiv

Speichert einzelne Unicode-Zeichen (UTF-16). char[] ist die interne Darstellung von Java-Strings und ermöglicht zeichenweise String-Manipulation.

Standardwert:'\u0000'
Größe:16 Bit
Minimum:'\u0000' (0)
Maximum:'\uFFFF' (65535)

Visualisierung

char[]5 Elemente
'H'
[0]
'e'
[1]
'l'
[2]
'l'
[3]
'o'
[4]
Länge:5
Letzter Index:4
Standardwert:'\u0000'
Bits/Element:16 Bit

Deklaration

So reservierst du Speicher für einen char[].

// Deklaration (Standardwert: '\u0000' = Null-Zeichen)
char[] buchstaben = new char[5];

// Jedes char ist ein einzelnes Unicode-Zeichen
char[] alphabet = new char[26];

Initialisierung

Verschiedene Wege, ein char[] mit Werten zu befüllen.

// Initialisierung mit Zeichenliteralen
char[] gruss = {'H', 'e', 'l', 'l', 'o'};

// Aus einem String konvertieren
char[] vonString = "Hallo".toCharArray();

// Alphabet aufbauen
char[] alphabet = new char[26];
for (int i = 0; i < 26; i++) {
    alphabet[i] = (char) ('a' + i); // 'a', 'b', ..., 'z'
}

Typische Operationen

Zugriff, Änderung, Iteration und häufige Patterns mit char[].

char[] arr = {'H', 'e', 'l', 'l', 'o'};

// Zugriff
char erster = arr[0];           // 'H'

// Als Zahl behandeln (Unicode-Wert)
int code = arr[0];              // 72 (ASCII/Unicode von 'H')

// char-Array zu String
String s = new String(arr);     // "Hello"
String s2 = String.valueOf(arr); // "Hello"

// Zeichenprüfung
for (char c : arr) {
    if (Character.isUpperCase(c)) System.out.print(c); // H
    if (Character.isLetter(c))    System.out.print(c); // Hello
    if (Character.isDigit(c))     System.out.print(c); // (nichts)
}

// Groß-/Kleinschreibung ändern
for (int i = 0; i < arr.length; i++) {
    arr[i] = Character.toLowerCase(arr[i]); // {'h','e','l','l','o'}
}

// String-Manipulation ohne neue Objekte
char[] reversed = new char[arr.length];
for (int i = 0; i < arr.length; i++) {
    reversed[i] = arr[arr.length - 1 - i];
}

Hintergründe & Details

char[] speichert einzelne Unicode-Zeichen im UTF-16-Format. Jedes Element belegt 16 Bit (2 Byte) und kann Werte von '' (0) bis '￿' (65535) darstellen — das deckt alle grundlegenden Unicode-Zeichen ab (Basic Multilingual Plane).

Verbindung zu String: In Java sind Strings intern als char[]-Arrays implementiert (in älteren JVM-Versionen direkt, in neueren optimiert). Die Methode toCharArray() wandelt einen String in ein char[]-Array um, und new String(charArray) wandelt es zurück.

Warum char[] statt String? Wenn du einen String zeichenweise bearbeiten, umkehren oder durchsuchen möchtest, ist ein char[]-Array oft effizienter, da Strings in Java unveränderlich (immutable) sind. Jede String-Manipulation erzeugt ein neues Objekt — mit char[] arbeitest du direkt.

Sicherheitshinweis: Passwörter sollten als char[] statt als String gespeichert werden, da char[]-Arrays explizit mit Arrays.fill(pwd, '\0') gelöscht werden können. Strings bleiben im Speicher, bis der Garbage Collector sie einsammelt.