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

Java bestimmt, ob ein Zeichen leer ist

angryTom
Freigeben: 2019-11-11 14:45:36
Original
4609 Leute haben es durchsucht

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(""));
Nach dem Login kopieren

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

if(s == null || s.length() == 0);
Nach dem Login kopieren

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());
Nach dem Login kopieren

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 == "");
Nach dem Login kopieren

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");
}
Nach dem Login kopieren

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") ;
Nach dem Login kopieren

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
    }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage