String[]
ReferenzSpeichert Referenzen auf String-Objekte. Die häufigste Art, Texte in Arrays zu verwalten — von Wortlisten bis zu Kommandozeilenargumenten.
nullVisualisierung
54nullDeklaration
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".