我有一个包含两个值的列表,如下所示:
在0:yesnonoyesyes
在1:是= 1;否= 0
我需要将'0'中的值替换为'1'中'='之后的值。
我已经编写了以下代码:
有人可以帮忙吗
List<String> list = new ArrayList<>();
list.add("truetruefalsefalsefalse");
list.add("true=Ja;false=Nein");
String string0 = list.get(0);
String string1 = list.get(1);
String[] split = string1.split(";");
String replace = new String();
for (String string : split) {
if (string0.contains(StringUtils.substringBefore(string, "="))) {
replace = string0.replace(StringUtils.substringBefore(string, "="), StringUtils.substringAfter(string, "="));
}
}
答案 0 :(得分:3)
替换后,您没有将值分配回列表。这可能是问题所在。
请查看下面的程序示例实现。
import java.util.ArrayList;
import java.util.List;
public class ReplaceValues{
public static void main(String[] args) {
List<String> list = new ArrayList<>();
list.add("truetruefalsefalsefalse");
list.add("true=Ja;false=Nein");
String[] split = list.get(0).split(";");
for (String string : split) {
String combination[] = string.split("=");
list.set(0, list.get(0).replaceAll(combination[0], combination[1]));
}
for(String item:list){
System.out.println(item);
}
}
}
输出:
JaJaNeinNeinNein
true=Ja;false=Nein
注意:如果您有重叠的字符串,例如。
true=ja
ue=t
因为它将再次用t替换ue,所以总体结果将被破坏。 这需要妥善处理。