Проверьте, не является ли строка не нулевой и не пустой - PullRequest
451 голосов
/ 30 августа 2010

Как я могу проверить, не является ли строка нулевой и не пустой?

public void doStuff(String str)
{
    if (str != null && str != "**here I want to check the 'str' is empty or not**")
    {
        /* handle empty string */
    }
    /* ... */
}

Ответы [ 30 ]

1 голос
/ 18 января 2016

Я бы посоветовал Guava или Apache Commons в соответствии с вашими потребностями. Проверьте различные варианты поведения в моем примере кода:

import com.google.common.base.Strings;
import org.apache.commons.lang.StringUtils;

/**
 * Created by hu0983 on 2016.01.13..
 */
public class StringNotEmptyTesting {
  public static void main(String[] args){
        String a = "  ";
        String b = "";
        String c=null;

    System.out.println("Apache:");
    if(!StringUtils.isNotBlank(a)){
        System.out.println(" a is blank");
    }
    if(!StringUtils.isNotBlank(b)){
        System.out.println(" b is blank");
    }
    if(!StringUtils.isNotBlank(c)){
        System.out.println(" c is blank");
    }
    System.out.println("Google:");

    if(Strings.isNullOrEmpty(Strings.emptyToNull(a))){
        System.out.println(" a is NullOrEmpty");
    }
    if(Strings.isNullOrEmpty(b)){
        System.out.println(" b is NullOrEmpty");
    }
    if(Strings.isNullOrEmpty(c)){
        System.out.println(" c is NullOrEmpty");
    }
  }
}

Результат:
Apache:
А пусто
б пусто
с пустым
Google:
b является NullOrEmpty
c является NullOrEmpty

1 голос
/ 28 мая 2018

С Java 8 Необязательно вы можете сделать:

public Boolean isStringCorrect(String str) {
    return Optional.ofNullable(str)
            .map(String::trim)
            .map(string -> !str.isEmpty())
            .orElse(false);
}

В этом выражении вы будете обрабатывать String с, которые также состоят из пробелов.

1 голос
/ 02 февраля 2019

Если вы используете Spring Boot, то нижеприведенный код выполнит работу

StringUtils.hasLength(str)
0 голосов
/ 07 июня 2019

Я столкнулся с ситуацией, когда я должен проверить, что «ноль» (как строка) должен рассматриваться как пустой. Также пробел и фактический ноль должны возвращать true. Я наконец-то остановился на следующей функции ...

public boolean isEmpty(String testString) {
  return ((null==testString) || "".equals((""+testString).trim()) || "null".equals((""+testString).toLowerCase()));
}
0 голосов
/ 10 мая 2019
import android.text.TextUtils;

if (!TextUtils.isEmpty(str)||!str.equalsIgnoreCase("") {
    ...
}
0 голосов
/ 29 января 2019

Чтобы проверить, все ли строковые атрибуты в объекте пусты (вместо использования! = Null во всех именах полей в соответствии с подходом API Java-отражения

private String name1;
private String name2;
private String name3;

public boolean isEmpty()  {

    for (Field field : this.getClass().getDeclaredFields()) {
        try {
            field.setAccessible(true);
            if (field.get(this) != null) {
                return false;
            }
        } catch (Exception e) {
            System.out.println("Exception occurred in processing");
        }
    }
    return true;
}

Этот метод возвращает значение true, если все значения поля String являются пустыми. Он возвращает значение false, если в атрибутах String присутствует какое-либо одно значение

0 голосов
/ 27 июля 2018

Лучший способ обработать нуль в строке:

str!=null && !str.equalsIgnoreCase("null") && !str.isEmpty()

Короче говоря,

str.length()>0 && !str.equalsIgnoreCase("null")
0 голосов
/ 06 апреля 2017

Для полноты: если вы уже используете среду Spring * , StringUtils предоставляют метод

org.springframework.util.StringUtils.hasLength(String str)

Возвращает: true, если строка не равна нулю и имеет длину

, а также метод

org.springframework.util.StringUtils.hasText(String str)

Возвращает: true, если строка не нулевая, ее длина больше 0, и она не содержит только пробелы

0 голосов
/ 31 января 2018

Если вы используете Spring Framework, вы можете использовать метод:

org.springframework.util.StringUtils.isEmpty(@Nullable Object str);

Этот метод принимает любой объект в качестве аргумента, сравнивая его с нулем и пустой строкой. Как следствие, этот метод никогда не вернет true для ненулевого не-строкового объекта.

0 голосов
/ 25 октября 2017

Просто, чтобы игнорировать также пробел:

if (str == null || str.trim().length() == 0) {
    // str is empty
} else {
    // str is not empty
}
...