2013-02-09 120 views
2

我有一个关于检查空condition.For如一个疑问:检查,如果条件“空”

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

同样一些其他4个字符串值,也有类似的情况。 我需要的是我想检查所有这些5字符串值是否为空,以便做一些其他特定部分。 我做到了这样的

if(value1 == null) 
{ 
} 

但PGM控制因此未进入环eventhough值1 =“”。 然后我试了

if(value1 ==""){ 
} 

这也没有奏效。

我们不能检查null和“”值是否相同? 任何人都可以帮助我?

+0

定义 “没有工作” 。 – 2013-02-09 11:01:14

+2

你是什么意思没有工作?预期产出是多少?你有什么输出?请更清楚地解释你的用例。 – 2013-02-09 11:01:17

+0

'''''**不是**'null' – 2013-02-09 11:01:24

回答

7

如果你要检查是一个字符串为空,你用

if (s == null) 

如果你想检查一个字符串是空字符串,您使用

if (s.equals("")) 

if (s.length() == 0) 

if (s.isEmpty()) 

空字符串是一个空字符串。它不是空的。绝不能用==来比较字符串内容。 ==测试两个变量是否参考同一对象实例。如果它们包含相同的字符,则不是。

+0

thnkz检查它的工作。还有1个dbt最后3种方法哪一种更有效。意味着这三种方法是否有相同的影响? – Sjk 2013-02-09 11:38:19

+1

AFAIK,在最后3种方法中,中间一种包含很少的头脑任务来计算准确长度,然后将其与0. 0进行比较,这不是您的目标,您的目标是只检查它是否为空。有时它可能发生你的字符串非常大,所以为什么要计算长度的开销呢,所以,第一个或第三个应该是正确的选择。 – 2013-02-09 11:46:57

+0

@MehulJoisar:你错了。只需检查源代码。 'length()'只返回一个字段的值。 – 2013-02-09 13:19:38

3

它看起来像你想检查一个字符串是否为空。

if (string.isEmpty()) 

您不能通过执行if (string == "")来检查,因为您正在比较String对象。他们永远不会相同,因为你有两个不同的对象。要比较字符串,请使用string.equals()

1

在使用字符串时,请始终使用.equals

equals()函数是Object类的一个方法,它应该被程序员覆盖。

如果你想检查字符串为null,则if (string.isEmpty())否则你也可以尝试if (string.equals(null))

+0

但value1.equals(null)没有为value1 =“” – Sjk 2013-02-09 11:46:10

+0

这个答案是错误的。如果变量'string'实际上是null,string.isEmpty()'或者变量为null的任何方法都会调用''string.equals(null)''会抛出'NullPointerException'。 – 2018-03-09 13:20:50

5

同时检查“不为空”和一根绳子“不空”,使用静态

TextUtils.isEmpty(stringVariableToTest) 
+1

好吧,你的方式:) – 2013-02-09 11:10:33

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 2013-02-09 11:08:39

+0

@Sean好..谢谢! – 2013-02-09 11:09:45

+0

@Sean。允许OP允许使用第三方库。我绝对不会选择任何第三方库来完成这样的小任务。 – 2013-02-09 11:10:41