2013-10-24 95 views
-3

對我而言,Null是一個有效的條件。如何檢查字符串是否爲空,因爲這是錯誤條件?如何縮短字符串空比較?

我知道我可以做到這一點,有沒有更好的方法?如果我不檢查null,它會拋出一個NPE。

String a = ...; 

if(a!=null && a.isEmpty()) { 
    //do stuff 
} 
+6

將該代碼封裝在方法中並使用此方法。但是不要重新發明輪子,這已經在['StringUtils.isEmpty(str)']中完成了(http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/StringUtils .html#isEmpty(java.lang.CharSequence)) –

+0

您可以測試以查看它是否爲null(a == null)並從那裏開始? – Andrew

+0

null對我來說是有效的條件,empty是錯誤條件所以我不能使用StringUtils方法? – Phoenix

回答

0

您可以嘗試檢查字符串的長度是否大於0;

String a = ...; 

if(a!=null && a.length>0) { 
    //do stuff 
} 
0

空對我來說是一個有效的條件和空是一個錯誤條件

如果nullnot empty是有效的,並且empty是無效的,這個代碼應該是有幫助的:

if(a == null || !a.isEmpty()) 
{ 
    //do stuff 
} 

or

if (!"".equals(a)) 
{ 
    // do stuff 
} 
3

當我明白這個問題,你真正想要的檢查是

if ("".equals(myString) { 
    do stuff ... 
} 

其測試的字符爲0長度,都將落空,沒有NPE,空值

+0

好的解決方案,如果(如問題所示)'null'是可以接受的,但''「'不是。 – iamnotmaynard

+0

不知道但是'myString =「<這裏有很多空白空間>」;'? –

+0

通過'do stuff'你的意思是拋出異常或報告錯誤,我假設。 – iamnotmaynard

0

狀態null是無效,以防止檢查字符串空虛,然後做其他的東西。

String a = ...; 

if (a == null) 
    throw new IllegalStateException("a is null") ; 
if (a.isEmpty()) { 
    //do stuff 
}