我想知道這個代碼是否有效檢查數組是否爲空,或者我應該檢查null?如何檢查一個空數組java
if(arrayName={})
System.out.println("array empty");
else System.out.println("array not empty");
謝謝!
我想知道這個代碼是否有效檢查數組是否爲空,或者我應該檢查null?如何檢查一個空數組java
if(arrayName={})
System.out.println("array empty");
else System.out.println("array not empty");
謝謝!
在數組類我們已經定義「長度」的靜態變量,它保持在數組對象中numberof元件。你可以用它來尋找長度爲:
if(arrayName.length == 0)
System.out.println("array empty");
else
System.out.println("array not empty");
不,因爲數組文字不能以這種方式工作。替換arrayName={}
與arrayName.length==0
,它應該工作。
要檢查空嘗試這樣的:
if (arr.length == 0) {
System.out.println("array is empty");
}
這是其他答案的複本。 – ostrichofevil
正如在其他的答案poited出來的Array
的length
屬性將給出數組的長度。但總是建議在對其進行任何操作之前檢查數組是否爲null
,否則如果數組爲null
,則將拋出NullPointerException
。
if (array != null) {
if (array.length == 0)
System.out.println("Empty Array Size=0");
else
System.out.println("Array Not Empty - Size = " + array.length);
} else
System.out.println("array is null");
}
proudandhonour的答案是正確的軌道上,但不會爲arrayName
所有可能的值,特別是在其arrayName
尚未定義,是null
這種情況下工作。在這種情況下,代碼:
if(arrayName.length == 0)
System.out.println("array empty");
else
System.out.println("array not empty");
將失敗,NullPointerException.
TimeTravel的回答正確測試這種情況下,正確處理所有可能的值arrayName
。唯一的缺點是他的代碼比需要的更冗長。
Java提供了短路評估的布爾表達式。具體而言,對於xx
的所有可能值,的結果是false
。因此,在評估布爾運算符&&
的第一個操作數時,如果第一個操作數的計算結果爲false,則JVM將忽略第二個操作數。
利用這個,我們可以這樣寫:
if (arrayName != null && arrayName.length > 0)
{ System.out.println("The array length > 0"); }
else
{ System.out.println("The array is null or empty"); }
也有三元運算符它提供了一種機制內聯IF-THEN-ELSE表達式。這在某些情況下,提高可讀性:
System.out.println((arrayName == null)
? "The arrayName variable is null"
: (arrayName.length < 1)
? "The array length is zero"
: "The array length is " + String.valueOf(arrayName.length)
);
我會考慮使用ArrayUtils.is空從這裏http://commons.apache.org/proper/commons-lang/download_lang.cgi
加入阿帕奇共享郎一大優勢是,這將空檢查數組你在乾淨和容易閱讀的方式。
你可以再做:
if (ArrayUtils.isEmpty(arrayName) {
System.out.printLn("Array empty");
} else {
System.out.printLn("Array not empty");
}
這取決於你的意思是什麼__empty__。 – Nabin
*「我想知道這個代碼對於檢查一個數組是否爲空是有效的」* - 你發佈的代碼甚至不能編譯。將來,只是嘗試編譯你的代碼**可能會更快,而不是讓人們在互聯網上查看它。 – DaoWen