HOWTO · Java

Boolean zu String in Java

In diesem Tutorial lernen Sie, wie Sie in Java einen booleschen Wert in einen String konvertieren

Auf dieser Seite

In Java stehen sowohl der primitive Typ boolean als auch die Wrapper-Klasse Boolean für true oder false. Für einen primitiven Wert können Sie String.valueOf(boolean) oder die statische Überladung Boolean.toString(boolean) verwenden. Bei einem nicht-null Boolean-Objekt funktioniert auch die Instanzmethode toString(). Verkettung und Formatierung eignen sich, wenn der Wert Teil einer längeren Nachricht ist. Bei diesen Umwandlungen entsteht Text in Kleinbuchstaben: Aus true wird "true", aus false wird "false".

Einen primitiven boolean mit String.valueOf(boolean) in eine Zeichenkette umwandeln

String.valueOf(boolean) ist eine statische Methode der Klasse String. Sie nimmt einen primitiven Wert vom Typ boolean entgegen und gibt dessen Textdarstellung zurück. Wenn der Wert bereits primitiv ist, ist dies eine direkte Möglichkeit; das Ergebnis lässt sich speichern, vergleichen oder an eine Methode übergeben, die einen String erwartet. Die Eingabe bleibt ein boolescher Wert, während die Rückgabe Text ist. Für spätere boolesche Bedingungen eignet sich dieser Text daher nicht, solange Sie ihn nicht wieder in einen booleschen Wert umwandeln.

Führen Sie dieses Beispiel aus:

public class BooleanStringExample {
    public static void main(String[] args) {
        boolean active = true;
        String text = String.valueOf(active);
        System.out.println(text);
    }
}
true

Diese Variante funktioniert auch mit false und gibt die entsprechende Zeichenkette in Kleinbuchstaben zurück. Verwenden Sie die Überladung für primitive Werte, wenn die Quellvariable als boolean deklariert ist. Java kann außerdem ein nicht-null Boolean automatisch entpacken, wenn ein primitiver Parameter erforderlich ist. Kann eine Wrapper-Referenz null sein, behandeln Sie diesen Fall, bevor Sie sie an eine Methode übergeben, die einen primitiven Wert erwartet: Das Entpacken von null verursacht eine NullPointerException.

Einen Boolean-Wert mit Boolean.toString() in eine Zeichenkette umwandeln

Boolean ist die Wrapper-Klasse, während boolean der primitive Typ ist. Ein nicht-null Boolean-Objekt kann seine Instanzmethode toString() aufrufen. Die Klasse bietet auch die statische Überladung Boolean.toString(boolean), die direkt einen primitiven Wert annimmt und vermeidet, nur für die Umwandlung ein Wrapper-Objekt zu erstellen. Das Beispiel zeigt beide Varianten, damit Sie passend zum bereits vorhandenen Typ wählen können. Die Beschriftungen „Instance“ und „Static“ sowie die angezeigte Ausgabe bleiben auf Englisch, weil die Code- und Ausgabeblöcke unverändert übernommen werden.

public class BooleanStringExample {
    public static void main(String[] args) {
        Boolean enabled = Boolean.FALSE;
        String instanceText = enabled.toString();
        boolean active = true;
        String staticText = Boolean.toString(active);
        System.out.println("Instance: " + instanceText);
        System.out.println("Static: " + staticText);
    }
}
Instance: false
Static: true

Der Aufruf der Instanzmethode erfordert eine nicht-null Referenz: Ist enabled null, löst enabled.toString() eine NullPointerException aus. Die statische Überladung wird über die Klasse aufgerufen und nimmt einen primitiven Wert entgegen; sie greift daher nicht auf ein Wrapper-Objekt zu. Wenn Sie ein möglicherweise nulles Boolean erhalten, legen Sie fest, was null bedeuten soll, bevor Sie die Instanzmethode aufrufen oder den Wert entpacken. Sie können beispielsweise die Referenz prüfen und bei null eine Ersatzzeichenkette verwenden.

Einen boolean- oder Boolean-Wert durch Verkettung in eine Zeichenkette umwandeln

Wenn Sie bereits eine Zeichenkette zusammensetzen, wandelt Java einen primitiven boolean bei der Verkettung in Text aus Kleinbuchstaben um. Auch ein nicht-null Boolean-Wrapper wird in den entsprechenden Text umgewandelt. Stellen Sie die Zeichenkette voran, damit eine Beschriftung gut lesbar ist, etwa "Enabled: " + enabled. Das ist praktisch für Nachrichten und Protokolleinträge; für eine alleinstehende Umwandlung macht eine explizite Methode die Absicht deutlicher. Die Beschriftungen „Active“ und „Enabled“ sowie die angezeigte Ausgabe bleiben auf Englisch, weil die Code- und Ausgabeblöcke unverändert übernommen werden.

public class BooleanStringExample {
    public static void main(String[] args) {
        boolean active = true;
        Boolean enabled = Boolean.FALSE;
        System.out.println("Active: " + active);
        System.out.println("Enabled: " + enabled);
    }
}
Active: true
Enabled: false

Wird ein nulles Boolean verkettet, entsteht der Text "null"; dabei wird nicht toString() auf dieser Referenz aufgerufen. Das unterscheidet sich von enabled.toString(), das bei derselben null-Referenz eine NullPointerException auslöst. Behalten Sie diesen Unterschied beim Erzeugen einer Ausgabe im Blick: Bei der Verkettung bleibt null als Wort null erhalten, während die Instanzmethode einen tatsächlichen Boolean-Wert voraussetzt. Ist der Text für Nutzer oder ein externes Format bestimmt, wählen Sie einen eindeutigen Ersatzwert, wenn null missverständlich wäre.

Einen boolean mit String.format() als Zeichenkette formatieren

Verwenden Sie String.format(), wenn der boolesche Wert in eine längere formatierte Nachricht oder zusammen mit mehreren anderen Werten ausgegeben werden soll. Die %b-Konvertierung formatiert ein Boolean-Argument als true oder false in Kleinbuchstaben. Das ist für gut lesbare Vorlagen nützlich, bringt für einen einzelnen Wert aber zusätzlichen Formatierungsaufwand mit sich. In diesem Beispiel stehen Formatzeichenkette und Wert zusammen, sodass die Position des booleschen Werts klar ist.

public class BooleanStringExample {
    public static void main(String[] args) {
        boolean available = true;
        String message = String.format("Available: %b", available);
        System.out.println(message);
    }
}
Available: true

Für eine einfache Umwandlung eignen sich String.valueOf(boolean) oder Boolean.toString(boolean). Verwenden Sie die Verkettung für eine kurze Beschriftung und String.format(), wenn eine Vorlage eine längere Nachricht übersichtlicher macht. Achten Sie in jedem Fall auf den Quelltyp: Ein primitiver Wert hat immer einen booleschen Wert, eine Boolean-Referenz kann dagegen null sein.