我遇到了一些具有以下内容的代码:
String foo = getvalue("foo");
if (StringUtils.isBlank(foo))
doStuff();
else
doOtherStuff();
Run Code Online (Sandbox Code Playgroud)
这看起来在功能上等同于以下内容:
String foo = getvalue("foo");
if (foo.isEmpty())
doStuff();
else
doOtherStuff();
Run Code Online (Sandbox Code Playgroud)
两者(org.apache.commons.lang3.StringUtils.isBlank和java.lang.String.isEmpty)之间有区别吗?
if(string.equals(""))
{
}
Run Code Online (Sandbox Code Playgroud)
如何检查字符串是否为空?
if(!string.equals(""))
{
}
Run Code Online (Sandbox Code Playgroud) 可能重复:
比较可能为null的字符串的更好方法
我有一个if条件,如下所示:
if( !str1.equals(str2) )
{
---
---
---
}
Run Code Online (Sandbox Code Playgroud)
其中str1和str2是两个字符串对象.
有可能str1可能为null,下面的代码是否等同于上面的代码,以及处理null检查?
if( !(str1==null ? str2==null : str1.equals(str2)) )
{
---
---
---
}
Run Code Online (Sandbox Code Playgroud)
谢谢!
有时碰巧我编写了一个代码来检查NullPointerException,如下所示,
if(str!=null)
{
doSomething();
}
Run Code Online (Sandbox Code Playgroud)
并且null检查本身会抛出NUllPointerException.
如何解决它.
编辑:其实这段代码是空指针,
Map params = new HashMap();
if(params != null && params.get("requestType"))
{
//some null safe code goes here
}
Run Code Online (Sandbox Code Playgroud)
我后来才知道params.get()抛出空指针异常.
所以我已经查看了一些关于这个问题的其他线程,似乎我应该能够使用常规比较运算符来检查这个问题.
但是,即使我的程序声明字符串为null,它也会通过执行if语句与字符串不为空的条件来解决这个问题.为了更清楚,这是我的完整计划:
package bank;
public class HowCheckForNull {
static void showDates(String[] dates){
for(int i = 0; i < dates.length; i++){
System.out.println(dates[i]);
System.out.println(dates[i] == null);
System.out.println(dates[i] == (String) null);
System.out.println(dates[i] != null);
if(dates[i] != null);{ //This should not execute!?
System.out.print("A transaction of X$ was made on the " + dates[i] + "\n");
}
}
System.out.println("");
}
public static void main(String args[]){
String[] dates = new String[3];
showDates(dates);
}
}
Run Code Online (Sandbox Code Playgroud)
输出:
null
true
true
false
A transaction of X$ was …Run Code Online (Sandbox Code Playgroud)