⟨info/⟩

String[]

Referenz

Speichert Referenzen auf String-Objekte. Die häufigste Art, Texte in Arrays zu verwalten — von Wortlisten bis zu Kommandozeilenargumenten.

Standardwert:null

Visualisierung

String[]5 Elemente
"Hallo"
[0]
"Welt"
[1]
"Java"
[2]
null
[3]
"!"
[4]
Länge:5
Letzter Index:4
Standardwert:null

Deklaration

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

// Deklaration (Standardwerte: null)
String[] woerter = new String[5];

// main-Methode: args ist ein String[]!
public static void main(String[] args) { ... }

Initialisierung

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

// Initialisierung mit String-Literalen
String[] woerter = {"Hallo", "Welt", "Java", null, "!"};

// Einzeln befüllen
String[] namen = new String[3];
namen[0] = "Alice";
namen[1] = "Bob";
namen[2] = "Charlie";

// Aus String splitten
String satz = "Hallo Welt Java";
String[] teile = satz.split(" ");  // {"Hallo", "Welt", "Java"}

Typische Operationen

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

String[] arr = {"Banana", "Apple", "Cherry", null, "Date"};

// Zugriff
String erstes = arr[0];         // "Banana"

// null-Prüfung PFLICHT vor String-Methoden!
for (String s : arr) {
    if (s != null) {
        System.out.println(s.toUpperCase());
    }
}

// String-Array sortieren (lexikographisch)
import java.util.Arrays;
String[] ohneNull = {"Banana", "Apple", "Cherry", "Date"};
Arrays.sort(ohneNull);          // ["Apple", "Banana", "Cherry", "Date"]

// Suchen
int idx = Arrays.binarySearch(ohneNull, "Cherry"); // 1

// Zu Liste konvertieren
import java.util.List;
List<String> liste = Arrays.asList(ohneNull);

// Zu einem String verbinden
String verbunden = String.join(", ", ohneNull); // "Apple, Banana, Cherry, Date"

// Mit Streams filtern
import java.util.stream.Stream;
String[] gefiltered = Stream.of(arr)
    .filter(s -> s != null && s.startsWith("C"))
    .toArray(String[]::new);    // ["Cherry"]

Hintergründe & Details

String[] ist kein primitiver Array-Typ — er speichert Referenzen auf String-Objekte im Heap-Speicher. Das hat wichtige Konsequenzen: Jedes Element zeigt auf ein String-Objekt (oder ist null), und das Array selbst enthält nur die Pointer, nicht die eigentlichen Zeichenketten.

Standardwert null: Nicht initialisierte Felder enthalten null, keine leeren Strings. Der Versuch, eine Methode auf null aufzurufen (null.length()), führt zu einer NullPointerException. Prüfe daher immer auf null, bevor du String-Methoden aufrufst.

String-Vergleich: Verwende niemals == zum Vergleich von String-Inhalten. == vergleicht Referenzen (Adressen), nicht Inhalte. Nutze stattdessen equals(): "Hallo".equals(arr[0]). Oder equalsIgnoreCase() für case-insensitiven Vergleich.

main(String[] args): Der bekannteste String[]-Parameter in Java ist args in der main-Methode. Er enthält alle Kommandozeilenargumente, die beim Programmstart übergeben wurden. Wenn du dein Programm mit java MyApp Hallo Welt startest, ist args[0] = "Hallo" und args[1] = "Welt".