input :抽象出来就像
ArrayList<String> candidate = new ArrayList<String>(); //内容为
candidate.add("doc11,paper[/a/b[/b]]11,c11,d11,c21,d21,result ");
candidate.add("doc11,c21,d21,paper[/a/b[/b]]11,c11,d11,result ")ArrayList<String> input01Prime = new ArrayList<String>(); //内容为 [doc11, paper[/a/b[/b]]11, c11, d11, result]
input01Prime.add("doc11");
input01Prime.add("paper[/a/b[/b]]11");
input01Prime.add("c11");
input01Prime.add("d11");
input01Prime.add("result"); ArrayList<Integer> slashNodeIndex1 = new ArrayList<Integer>(); //内容为[1, 2]
slashNodeIndex1.add("1");
slashNodeIndex1.add("2");output想要的结果是 ArrayList<String> result
doc11//paper[/a/b[/b]]11/c11/d11//c21//d21//result
doc11//c21//d21//paper[/a/b[/b]]11/c11/d11//result
就是把candidate list中 逗号变成// 或/ 比如 input01Prime.get(slashNodeIndex.get(0))的node paper[/a/b[/b]]11后面逗号变成/ input01Prime.get(slashNodeIndex.get(1))对应的node c11后面节点逗号变/, 其他node 逗号变//
ArrayList<String> candidate = new ArrayList<String>(); //内容为
candidate.add("doc11,paper[/a/b[/b]]11,c11,d11,c21,d21,result ");
candidate.add("doc11,c21,d21,paper[/a/b[/b]]11,c11,d11,result ")ArrayList<String> input01Prime = new ArrayList<String>(); //内容为 [doc11, paper[/a/b[/b]]11, c11, d11, result]
input01Prime.add("doc11");
input01Prime.add("paper[/a/b[/b]]11");
input01Prime.add("c11");
input01Prime.add("d11");
input01Prime.add("result"); ArrayList<Integer> slashNodeIndex1 = new ArrayList<Integer>(); //内容为[1, 2]
slashNodeIndex1.add("1");
slashNodeIndex1.add("2");output想要的结果是 ArrayList<String> result
doc11//paper[/a/b[/b]]11/c11/d11//c21//d21//result
doc11//c21//d21//paper[/a/b[/b]]11/c11/d11//result
就是把candidate list中 逗号变成// 或/ 比如 input01Prime.get(slashNodeIndex.get(0))的node paper[/a/b[/b]]11后面逗号变成/ input01Prime.get(slashNodeIndex.get(1))对应的node c11后面节点逗号变/, 其他node 逗号变//
import java.util.Arrays;
import java.util.Collections;public class ArrayListTest {
public static void main(String[] args) {
ArrayList<String> candidate = new ArrayList<String>(); //内容为
candidate.add("doc11,paper[/a/b[/b]]11,c11,d11,c21,d21,result ");
candidate.add("doc11,c21,d21,paper[/a/b[/b]]11,c11,d11,result ");
ArrayList<String> result = new ArrayList<String>();
StringBuilder builder = new StringBuilder();
for (String string : candidate) {//遍历集合 修改创建新的字符串 返回到result集合中
String[] strs = string.split(",");
// System.out.println(Arrays.toString(strs));
for (String string2 : strs) {
builder.append(string2).append("/");
}
builder.deleteCharAt(builder.length() - 1);
// System.out.println(builder.toString());
String str = builder.toString();
result.add(str);
}
for (String string : result) {
System.out.println(string);
}
}
}
算法效率 很差劲了 你看看这个 参考下
咱也是新人 呵呵
T oldVal,
T newVal)
至于“不是逗号变/or// 是有的变/ 有的变// ”那分开两次replaceAll不就行了。