检查条件是否为"null"

Sjk*_*Sjk 3 java string null android if-statement

我对检查null条件有疑问.例如:

if(some conditon)
value1= value;  //value1 is string type
else 
value1= "";
Run Code Online (Sandbox Code Playgroud)

类似地,其他4个字符串值具有相似的条件.我需要的是我想检查所有这5个字符串值是否为null,为了做一些其他特定的部分.我是这样做的

if(value1 == null)
{
}
Run Code Online (Sandbox Code Playgroud)

但是pgm控件没有进入循环,尽管value1 ="".然后我试过了

if(value1 ==""){
} 
Run Code Online (Sandbox Code Playgroud)

这也没有用.

我们不能检查null和""值是否相同?谁能帮我??

JB *_*zet 9

如果要检查String是否为null,则使用

if (s == null)
Run Code Online (Sandbox Code Playgroud)

如果要检查字符串是否为空字符串,请使用

if (s.equals(""))
Run Code Online (Sandbox Code Playgroud)

要么

if (s.length() == 0)
Run Code Online (Sandbox Code Playgroud)

要么

if (s.isEmpty())
Run Code Online (Sandbox Code Playgroud)

空字符串是空字符串.它不是空的.并且==绝不能用于比较字符串内容.==测试两个变量是否引用同一个对象实例.如果它们包含相同的字符则不会.

  • 是的,当然它返回字符串的长度.但它不需要计算字符数.长度是预先计算的并存储在String类的字段中.没有什么可以计算的.查看[String.length()的源代码](http://grepcode.com/file/repository.grepcode.com/java/root/jdk/openjdk/6-b14/java/lang/String.java# string.length减%28%29). (2认同)
  • 你**永远不会改变一个字符串,因为String是不可变的.每个"变异"操作(如concat(),substring()等)都会返回一个新的String对象,并保持原始字符串不被修改. (2认同)

Sea*_*ean 5

要检查String上的"is not null"和"is not empty",请使用static

TextUtils.isEmpty(stringVariableToTest)
Run Code Online (Sandbox Code Playgroud)