[英]To remove null values while traversing arraylist
我正在嘗試使用此代碼替換arraylist中的空值。 我在xml文件的標記中獲取了空值。 該標簽中的值來自arraylist。 我想從標記中刪除null,而不要放置任何內容。 我的代碼是這樣的:
for(String s:a.getList){
here I setting values in tag by create tag and than appending child nodess using DOM parser.
}
其中a =包含列表的對象
輸出是這樣的:
<value>1</value>
<value>2</value>
<value>null</value>
<value>3</value>
<value>4</value>
<value>null</null>
。 。 。等等
預期產量:
<value>1</value>
<value>2</value>
<value/>
<value>3</value>
<value>4</value>
<value/>
null應該被刪除,並且標簽應該看起來像這樣
我正在嘗試的代碼是:
for(String s:a.list){
if(s.equals("null")){
s.replace("null","");
my code;
}
總是會得到空指針異常,並且不知道這是否將運行什么輸出。 請幫忙..
您不更新列表,而是創建新的String
實例,因為String
是不可變的。 如果當前值為"null"
則只需設置所需的值
for(int i = 0; i < list.size(); ++i){
if("null".equals(list.get(i)){
list.set(i, "");
}
}
條件不會因null
值而失敗,但是如果要替換為null
值,則需要添加條件,因為目前,它將僅更新"null"
。
如果要同時刪除,使用數組列表的最佳方法是從最后到第一進行迭代。
for (int i = list.size()-1; i >= 0; i--) {
if ("null".equalsIgnoreCase(list.get(i))) {
list.remove(i);
}
}
“ null” .equalsIgnoreCase(list.get(i))將避免空指針異常
用於去除和印刷價值
for (String str : abc) {
if ("null".equalsIgnoreCase(str)) {
System.out.println("<value/>");
} else {
System.out.println("<value>"+str+"</value>");
}
}
更清楚一點
public static void main(String... args) {
ArrayList<String> a = new ArrayList<String>();
a.add("one");
a.add(null);
a.add("two");
a.removeAll(Collections.singleton(null));
for(String value : a) {
System.out.println(value);
}
}
輸出量
one
two
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.