2014-03-04 46 views
1

我想知道檢查字符串數組是否爲空的最佳做法。使用String []數組進行空檢查

String[] name = {"a" , "b"}; 

if (name == null) { 
} 

這是一個很好的做法,還是有更好的代碼?

+1

你是什麼意思通過「布爾值的String []?」你認爲什麼是真實的,你認爲什麼是錯誤的? –

+0

我認爲「布爾值的String []」的概念根本不適用於Java。它不像JavaScript那裏的東西是真的或是狡猾的。您可以檢查引用是否爲空,或者數組的元素是否爲空,但這就是全部。 – ktm5124

回答

0

要檢查一個字符串數組是空的...

public boolean isEmptyStringArray(String [] array){ 
for(int i=0; i<array.length; i++){ 
    if(array[i]!=null){ 
    return false; 
    } 
    } 
    return true; 
} 
3
if(name!=null && name.length > 0) { 
    // This means there are some elements inside name array. 
} else { 
    // There are no elements inside it. 
} 
+1

數組中的'length'是一個字段,而不是一個方法。 –

+0

@BrianRoach,謝謝你指出,我錯誤地加了括號。 – Aditya

+0

是否爲空檢查?長度已經完成了這項工作 –

2

Java中的所有陣列具有特殊領域的「長度」,其中包含數組中元素的個數,即數組長度換一種說法。

String test(String[] array) 
{ 
    if (array == null) { 
     return "array is null"; 
    } 
    if (array.length == 0) { 
     return "array is empty, meaning it has no element"; 
    } 
    for (String s : array) { 
     if (s == null) { 
      return "array contains null element"; 
     } 
     if (s.length() == 0) { 
      return "array contains empty string"; 
     } 
     // or 
     if (s.isEmpty()) { 
      return "array contains empty string"; 
     } 
    } 

    return "array is not null or empty and does not contain null or empty strings"; 
} 

要測試數組是否包含空元素或空字符串,您需要遍歷它並逐個檢查每個元素。

不要忘記,數組的長度是特殊字段array.legnth,字符串的長度是函數string.length()。

5

通常你會想要做的事,如:

if (arr != null && arr.length > 0) { ... } 

非空數組。

但是,正如您可能會懷疑的那樣,有人已經爲這種常見操作製作了utils。例如,在下議院琅,你可以這樣做:

if (ArrayUtils.isEmpty(arr)) {... } 

,如果你做ArrayUtils.isEmpty靜態導入,這條線還可以更短,看起來更好:

if (isEmpty(arr)) { ... } 
+0

org.apache.commons.lang.ArrayUtils這將更有用如果項目已經使用** apache包**,通常簡單的編程不使用該jar分發 –

+0

@SrinathGanesh當然是否使用第三方lib是選擇的OP,但使用Maven和Gradle等現代構建工具,在簡單程序中使用這樣的lib沒有任何問題。 –