2017-09-11 112 views
0

我正在使用下面提到的代碼在arraylist的xml中編寫逗號分隔值。替換XML中的空值

String commaSeparated = String.join(",", list); 
Element n= doc.createElement("value"); 
n.appendChild(doc.createTextNode(commaSeparated)); 

我的ArrayList中包含的表示如下一些空值:

<value>1,2,3,null,4,5,null,6</value> 

我想通過一些其他的值來代替這個空說「一」。

我使用下面的代碼來做到這一點:

if(commaSeparated==null){ 
commaSeparated="a"; 
} 

但還是我得到空值,而不是預期的輸出。

預期輸出:

<value>1,2,3,a,4,5,a,6</value> 

請幫

+0

很難知道,因爲相關的代碼是不完整的,但我的猜測是,「空」(一個字符串值)是不一樣的空。 – jdv

回答

0

你應該嘗試改變:

if(commaSeparated==null){ // the complete string is not null 
    commaSeparated="a"; //never reached 
} 

commaSeparated=commaSeparated.replaceAll("null","a"); //replaces all null substrings with 'a' 
0

一些解釋 - 你可能錯過了逗號分隔我這是最後一個字符串,其值由逗號分隔。所以試圖找出它是否爲空並不是真正的解決方案。

您可以在最終字符串上執行此操作,或者可以檢查列表中的每個元素,並在預期的時間使用您自己的值創建新的元素。即

List<String> formattedList = new ArrayList<String>(); 
for (String element : list) { 
    if(element == null){ 
     formattedList.add("a"); 
    }else{ 
     formattedList.add(element); 
    } 
} 

現在你可以把formattedListString.join

0

嘗試之前更換空值,對於爲例:

list.replaceAll(s -> s == null ? "a" : s); 
    String commaSeparated =String.join(",", list);