2013-02-09 2 views
2

У меня есть сомнения относительно проверки нулевой condition.For например:Проверяется условие «нулевой»

if(some conditon) 
value1= value; //value1 is string type 
else 
value1= ""; 

Аналогично некоторые 4 других строкового значения имеет аналогичное условие. Что мне нужно, я хочу проверить, является ли все эти 5 строковых значений нулевыми или нет, Inorder для выполнения какой-либо другой конкретной части. я сделал это, как этот

if(value1 == null) 
{ 
} 

но контроль didnot МПГ вошел в петлю Eventhough value1 = "". затем я попытался

if(value1 ==""){ 
} 

это также Didnt работал.

Неверно мы проверяем значение null и "как такое же ?? может кто-нибудь мне помочь ??

+0

Определение "не работают" , –

+2

Что вы имеете в виду, не работает? Каков был ожидаемый результат? и какой результат вы получили? Пожалуйста, объясните свой пример использования более четко. –

+0

'' '' is ** not ** 'null' –

ответ

7

Если вы хотите проверить, является строка имеет нулевое значение, вы используете

if (s == null) 

Если вы хотите, чтобы проверить, является ли строка пустой строкой, вы используете

if (s.equals("")) 

или

if (s.length() == 0) 

или

if (s.isEmpty()) 

Пустая строка - это пустая строка. Это не пусто. И == никогда не должны использоваться для сравнения содержимого строки. == проверяет, соответствуют ли две переменные одному экземпляру объекта. Нет, если они содержат одни и те же символы.

+0

thnkz, котор он работал. Также еще 1 dbt среди последние 3 метода, которые являются более эффективными. Могут ли те 3 одинакового воздействия? – Sjk

+1

AFAIK, среди последних 3 методов, средний содержит небольшую служебную задачу для вычисления точной длины, прежде чем сравнивать ее с 0. и это не ваша цель, ваша цель - просто проверить, пуст или нет. Иногда это может что ваша строка очень большая. Поэтому, чтобы сделать накладные расходы на вычисление length.so, первый или третий должен быть правильным выбором. –

+0

@MehulJoisar: вы ошибаетесь. Просто проверьте исходный код. 'length()' просто возвращает значение поля. –

3

Похоже, вы хотите проверить, что строка пуста или нет.

if (string.isEmpty()) 

Вы не можете проверить, что при этом if (string == ""), потому что вы сравниваете объекты String. Они никогда не бывают одинаковыми, потому что у вас есть два разных объекта. Чтобы сравнить строки, используйте string.equals().

1

Когда вы работаете над String, всегда используйте .equals.

equals() function - это метод класса Object, который должен быть переопределен программистом.

Если вы хотите, чтобы проверить строку является нулевым, тогда if (string.isEmpty()) еще можно попробовать if (string.equals(null))

+0

, но value1.equals (null) didnt работал для value1 = "" – Sjk

+0

Этот ответ неверный. 'string.equals (null)' будет вызывать 'NullPointerException', если переменная' string' на самом деле является нулевой, как и 'string.isEmpty()', или любой метод, вызываемый для переменной, которая равна null. –

5

Чтобы проверить, как «не пустой» и «не является пустым» на строку, используйте статический

TextUtils.isEmpty(stringVariableToTest) 
+1

ok this your way :) –

0

предпочитают ниже.

String str; 
if(str.length() > 0) 
{ 
    Log.d("log","str is not empty"); 
} 
else 
{ 
    Log.d("log","str is empty"); 
} 
1

Вы можете использовать:

мы можем проверить, является ли строка пустой 2-мя способами:

  • if(s != null && s.length() == 0)
  • if(("").equals(s))
+0

Вы можете просто использовать TextUtils.isEmpty() вместо первого. – Sean

+0

@Sean Good ..thanks! –

+0

@Sean. Если OP разрешено использовать стороннюю библиотеку. Я бы не предпочел какую-либо стороннюю библиотеку для такой незначительной задачи. –

Смежные вопросы