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

Просто пришлось решить подобную проблему. [3]

Мое решение состояло в том, чтобы написать помощника, который вернул предикат:

public static class Extensions
{
    public static Expression<Func<Order, bool>> IsPaid()
    {
        return order => order.Payments.Sum(p => p.Amount) >= order.Total;
    }
}

Вы можете переписать ваш оператор linq как:

var debts = storeDB.Orders
                    .Where(Extensions.IsPaid())
                    .OrderByDescending(o => o.DateCreated);

Это удобно, если вы хотите повторно использовать логику вычисления (DRY). Недостатком является то, что логика не в вашей модели домена.

166
задан Roman 8 April 2010 в 17:29
поделиться

9 ответов

 if (myString != null && myString.length() > 0) {

        // your magic here

 }

Между прочим, если вы делаете много строк манипуляций, есть отличный класс Spring со всеми видами полезных методов:

http://static.springsource.org/spring/docs/2.5.x/api/org/springframework/util/StringUtils.html

4
ответ дан 23 November 2019 в 21:03
поделиться

Если myString равно null , то вызов myString.equals (null) или myString.equals ("") завершится ошибкой с исключением NullPointerException . Вы не можете вызывать какие-либо методы экземпляра для нулевой переменной.

Сначала проверьте наличие null следующим образом:

if (myString != null && !myString.equals("")) {
    //do something
}

Это использует оценку короткого замыкания , чтобы не пытаться выполнить .equals , если myString не возвращает значение null проверить.

26
ответ дан 23 November 2019 в 21:03
поделиться

Если ваша строка имеет значение null, такие вызовы должны вызывать исключение NullReferenceException:

myString.equals (null)

Но в любом случае, я думаю, что вам нужен такой метод:

public static class StringUtils
{
    public static bool isNullOrEmpty(String myString)
    {
         return myString == null || "".equals(myString);
    }
}

Затем в своем коде вы можете делать что-то вроде этого:

if (!StringUtils.isNullOrEmpty(myString))
{
    doSomething();
}
5
ответ дан 23 November 2019 в 21:03
поделиться

Я всегда использую как это:

if (mystr != null && !mystr.isEmpty()){
  //DO WHATEVER YOU WANT OR LEAVE IT EMPTY
}else {
  //DO WHATEVER YOU WANT OR LEAVE IT EMPTY
}

или можно скопировать это в проект:

private boolean isEmptyOrNull(String mystr){
    if (mystr != null && !mystr.isEmpty()){ return true; }
    else { return false; }
}

и просто называют его как:

boolean b = isEmptyOrNull(yourString);

это возвратит true, если будет пустым или пустым.
b=true, если пусто или пустой

или можно использовать выгоду попытки и поймать, когда это является пустым.

0
ответ дан 23 November 2019 в 21:03
поделиться

Это должно сработать:

if (myString != null && !myString.equals(""))
    doSomething
}

Если нет, то myString, вероятно, имеет значение, которое вы не ожидаете. Попробуйте распечатать его следующим образом:

System.out.println("+" + myString + "+");

Использование символов «+» в окружении строки покажет вам, есть ли там лишние пробелы, которые вы не учитываете.

2
ответ дан 23 November 2019 в 21:03
поделиться
if (myString != null && !myString.isEmpty()) {
  // doSomething
}

В качестве дальнейшего комментария , вам следует помнить об этом термине в контракте равно :

From Object.equals (Object) :

Для любого ненулевого ссылочного значения x , x.equals (null) должен вернуть false .

Для сравнения с null используйте x == null и x! = Null .

Кроме того, x.field и x.method () выбрасывают NullPointerException if x == null .

226
ответ дан 23 November 2019 в 21:03
поделиться

Я бы сделал что-то вроде этого:

( myString != null && myString.length() > 0 )
    ? doSomething() : System.out.println("Non valid String");
  • Проверка на null проверяет, содержит ли myString экземпляр String.
  • length () возвращает длину и эквивалентен equals ("").
  • Проверка того, является ли myString нулевым, позволит избежать исключения NullPointerException.
3
ответ дан 23 November 2019 в 21:03
поделиться

Попробуйте,

myString!=null && myString.length()>0
4
ответ дан 23 November 2019 в 21:03
поделиться

Вам необходимо убедиться, что объект myString имеет значение null :

if (myString != null) {
    doSomething
}
6
ответ дан 23 November 2019 в 21:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: