Null und leere Zeichenkette in Java

Mohammad Irfan 12 Oktober 2023
  1. Verwendung von den leeren String in Java
  2. Verwendung von den Null-String in Java
  3. Null- und leeres String-Beispiel in Java
  4. Überprüfung von Null und leerem String mit der Methode equals() in Java
Null und leere Zeichenkette in Java

Dieses Tutorial behandelt den Unterschied zwischen null und leeren Strings in Java. Aber vorher werden wir den grundlegenden Unterschied zwischen den Begriffen leer und null verstehen.

Leer ist wie eine leere Schachtel, die wir je nach Bedarf verwenden können, um sie zu füllen oder Notwendiges zu tun.

Null ist wie ein Vakuum mit einer damit verbundenen Eigenschaft, weshalb wir es weder als leer noch als voll betrachten können.

In Java bezieht sich ein String auf die Folge von Zeichen. Zum Beispiel ist delftstack ein String.

Wir sehen oft die leeren und Null-Strings in Java. Viele Leute denken, dass sowohl leere als auch null Zeichenfolgen gleich sind, aber es gibt einen Unterschied zwischen null und leeren Zeichenfolgen.

Verwendung von den leeren String in Java

String a = ""; // empty string

Hier ist a ein leerer String. Wenn wir der Variable string den leeren String zuweisen, zeigt dies an, dass die Variable reference auf einen Speicherplatz eines Strings in einem Heap verweist.

Ein leerer String ist ein String, der keine Zeichen enthält und eine wohldefinierte Länge hat - Länge ist 0. Wir können alle Zeichenfolgenoperationen an einer leeren Zeichenfolge ausführen.

Wir können seine Länge finden, indem wir die Methode length() verwenden, den Index einiger Zeichen ermitteln usw.

Verwendung von den Null-String in Java

String b = null;

Hier ist b ein Null-String. Bei der Zuweisung der Null an die String-Variable verweist die Referenzvariable auf keinen Speicherplatz in einem Heap.

Die Null-Zeichenfolge bedeutet überhaupt keine Zeichenfolge. Es hat keine Länge, weil es überhaupt kein String ist.

Das Anwenden einer Standard-String-Operation auf den Null-String führt zu einer NullPointerException-Laufzeit.

Null- und leeres String-Beispiel in Java

In diesem Beispiel haben wir einen leeren und einen Null-String erstellt und dann ihre Funktion mit der length()-Methode überprüft. Die Null-Zeichenfolge löst eine Ausnahme aus, während die Leere dies nicht tut.

Siehe das Beispiel unten.

public class SimpleTesting {
  public static void main(String[] args) {
    // empty string
    String a = "";
    // null string
    String b = null;

    // printing length of empty string
    System.out.println("length a = " + a.length());

    // this piece of code will still throw nullpointerexception .*
    if (b != "") {
      // printing length of null string
      System.out.println("length b =" + b.length());
    }
  }
}

Ausgabe:

length a = 0
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.length()" because "<local2>" is null
        at SimpleTesting.main(SimpleTesting.java:15)

Überprüfung von Null und leerem String mit der Methode equals() in Java

Wir haben die Methode equals() und den Operator equal == verwendet, um in diesem Beispiel den leeren und den Null-String zu überprüfen. Der Ausdruck a==b gibt false zurück, weil "" und null nicht den gleichen Platz im Speicher einnehmen.

Mit einfachen Worten können wir sagen, dass Variablen nicht auf dieselben Objekte zeigen. a.equals(b) gibt false zurück, weil die Objektreferenzwerte, auf die a und b verweisen, nicht übereinstimmen.

Das b.equal(a) gibt NullPointerExpception zurück, weil b auf eine obskure Referenz zeigt und keine Operation erlaubt ist.

public class SimpleTesting {
  public static void main(String[] args) {
    // empty string
    String a = "";
    // null string
    String b = null;
    System.out.println(a == b);
    System.out.println(a.equals(b));
    System.out.println(b.equals(a));
  }
}

Ausgabe:

false
false
Exception in thread "main" java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "<local2>" is null
        at SimpleTesting.main(SimpleTesting.java:13)

Verwandter Artikel - Java String