Heim  >  Artikel  >  Java  >  Java bestimmt, ob ein Zeichen leer ist

Java bestimmt, ob ein Zeichen leer ist

angryTom
angryTomOriginal
2019-11-11 14:45:364566Durchsuche

Java bestimmt, ob ein Zeichen leer ist

Java bestimmt, ob ein Zeichen leer ist

Im Folgenden sind vier Möglichkeiten zusammengefasst, mit denen Sie feststellen können, ob ein Zeichen leer ist empty in Java-Methode, ich hoffe, es hilft Ihnen.

Methode 1. Die beliebteste Methode, intuitiv und praktisch, aber sehr ineffizient:

if(s == null || s.equals(""));

Methode 2. Stringlängen vergleichen, effizient Hoch, das ist sie Die beste Methode, die ich kenne:

if(s == null || s.length() == 0);

Methode 3, eine Methode, die erst ab Java SE 6.0 bereitgestellt wird, ist fast so effizient wie Methode 2, wird aber aus Kompatibilitätsgründen empfohlen Methode 2 verwenden.

if(s == null || s.isEmpty());

Methode 4. Dies ist eine relativ intuitive und einfache Methode, und die Effizienz ist auch sehr hoch. Sie ist fast so effizient wie die Methoden 2 und 3:

if (s == null || s == "");

Hinweis: s == null ist erforderlich (Empfohlenes Tutorial: Java-Tutorial)

Wenn der String-Typ null ist, lösen Operationen wie equal(String) oder length() eine java.lang.NullPointerException aus.

Und die Reihenfolge s==null muss vorne stehen, andernfalls wird auch eine java.lang.NullPointerException ausgelöst.

Der folgende Java-Code:

String str = null;
f(str.equals("") || str == null){//会抛出异常
    System.out.println("success");
}

Ergänzung:

1. Leere Zeichenfolge. Unterschiede zu null

1. Typ

null repräsentiert den Wert eines Objekts, nicht einer Zeichenfolge. Wenn Sie beispielsweise einen Verweis auf ein Objekt deklarieren, stellt String a = null ;

"" einen leeren String dar, was bedeutet, dass seine Länge 0 ist. Zum Beispiel bedeutet die Deklaration einer Zeichenfolge String str = ";

2. Speicherzuweisung

String str = null; der Zeiger ist jedoch null es ist immer noch Es zeigt auf keinen Speicherplatz; leere Zeichenfolge;

In Java werden Variablen und Referenzvariablen im Stapel (Stack) gespeichert, während Objekte (von new generiert) im Heap (Heap) gespeichert werden:

Wie folgt:

String str = new String("abc") ;

ps: =Der linke wird im Stapel (Stack) gespeichert, =Der rechte wird im Heap (Heap) gespeichert.

3. Beispielprogramm:

public class String_Demo01 {
    public static void main(String[] args) {        
        String str1 = new String() ;
        String str2 = null ;
        String str3 = "" ;
        System.out.println(str1==str2);                //内存地址的比较,返回false
        System.out.println(str1.equals(str2));         //值的比较,返回false
        System.out.println(str2==str3);                //内存地址的比较,返回false
        System.out.println(str3.equals(str2));         //值的比较,返回false
        System.out.println(str1==str3);                //内存地址的比较,返回false
        System.out.println(str1.equals(str3));         //值的比较,返回true
    }
}

Durch das obige Programm können die folgenden Schlussfolgerungen gezogen werden:

Die Werte von String-Objekten und Null sind nicht gleich und Auch die Speicheradressen sind nicht gleich. ;

Der Wert eines leeren String-Objekts ist nicht gleich Null und die Speicheradresse ist nicht gleich;

new String() erstellt ein String-Objekt mit einem Standardwert von „“ (String-Typ-Mitglied Der Anfangswert der Variablen ist null)

Das obige ist der detaillierte Inhalt vonJava bestimmt, ob ein Zeichen leer ist. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn