我正在使用下面提到的代码在arraylist中用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>
我想用其他一些值'a'替换这个null。
我正在使用以下代码执行此操作:
if(commaSeparated==null){
commaSeparated="a";
}
但我仍然得到空值而不是预期的输出。
预期产出:
<value>1,2,3,a,4,5,a,6</value>
请帮忙
答案 0 :(得分: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'
答案 1 :(得分:0)
一些解释 - 你可能错过了commaSeparated是这个最后一个字符串,其值被逗号分割。因此,试图找出它是否真的不是一个解决方案。
您可以在最终字符串上执行此操作,或者您可以检查列表中的每个元素,并在预期时使用您自己的值创建新元素。即
List<String> formattedList = new ArrayList<String>();
for (String element : list) {
if(element == null){
formattedList.add("a");
}else{
formattedList.add(element);
}
}
现在您可以将formattedList
添加到String.join
。
答案 2 :(得分:0)
尝试替换之前的空值,例如:
list.replaceAll(s -> s == null ? "a" : s);
String commaSeparated =String.join(",", list);