Controleren of een string leeg of null is in Java

Ik ben HTML-gegevens aan het parseren. De Stringkan nullof leeg zijn, wanneer het te ontleden woord niet overeenkomt.

Dus ik heb het zo geschreven:

if(string.equals(null) || string.equals("")){
    Log.d("iftrue", "seem to be true");
}else{
    Log.d("iffalse", "seem to be false");
}

Als ik String.equals("")verwijder, werkt het niet correct.

Ik dacht dat String.equals("")niet correct was.

Hoe kan ik het beste controleren op een lege String?


Antwoord 1, autoriteit 100%

De juiste manier om te controleren op null of leeg of tekenreeks die alleen spaties bevat, is als volgt:

if(str != null && !str.trim().isEmpty()) { /* do your stuffs here */ }

Antwoord 2, autoriteit 65%

U kunt gebruikmaken van Apache Commons StringUtils.isEmpty(str), die controleert op lege tekenreeksen en nullnetjes afhandelt.

Voorbeeld:

System.out.println(StringUtils.isEmpty("")); // true
System.out.println(StringUtils.isEmpty(null)); // true

Google Guava biedt ook een vergelijkbare, waarschijnlijk gemakkelijker te lezen methode: Strings.isNullOrEmpty(str).

Voorbeeld:

System.out.println(Strings.isNullOrEmpty("")); // true
System.out.println(Strings.isNullOrEmpty(null)); // true

Antwoord 3, autoriteit 16%

U kunt Apache commons-lang gebruiken

StringUtils.isEmpty(String str)– Controleert of een tekenreeks leeg (“”) of null is.

of

StringUtils.isBlank(String str)– Controleert of een tekenreeks witruimte, leeg (“”) of null is.

de laatste beschouwt een string die uit spaties of speciale tekens bestaat, bijv. ” “, ook als leeg. Zie java.lang.Character.isWhitespace API


Antwoord 4, autoriteit 6%

Op deze manier controleer je of de string niet null en niet leeg is, ook rekening houdend met de lege spaties:

boolean isEmpty = str == null || str.trim().length() == 0;
if (isEmpty) {
    // handle the validation
}

Antwoord 5, autoriteit 6%

import com.google.common.base

if(!Strings.isNullOrEmpty(String str)) {
   // Do your stuff here 
}

Other episodes