[问题] 在String中插入多个String(类似字典

楼主: gcobc12632 (Ted)   2017-06-15 15:27:26
原本我假设是这样:
String str = "这是一个测试的字串";
ArrayList<String> inputA = new ArrayList<>(); // 要插入的字串A
ArrayList<Integer> indexA = new ArrayList<>(); // 要插入的字串A的位置
inputA.add("0");
inputA.add("2");
inputA.add("4");
inputA.add("6");
indexA.add(0);
indexA.add(2);
indexA.add(4);
indexA.add(6);
然后将字串插入:
int count = 0;
for(int i = 0; i < indexA.size(); i++) {
str = str.substring(0, indexA.get(i) + count)
+ inputA.get(i) // 插入字串
+ str.substring(indexA.get(i) + count);
count++;
}
正确结果:
0这是2一个4测试6的字串
但是如果我插入两个以上的字串就不知道该怎么处理了…
ArrayList<String> inputB = new ArrayList<>(); // 要插入的字串B
ArrayList<Integer> indexB = new ArrayList<>(); // 要插入的字串B的位置
inputB.add("a");
inputB.add("b");
inputB.add("c");
indexB.add(2);
indexB.add(3);
indexB.add(4);
然后加上上面的结果应该要是:
(如果字串A跟字串B在同一个位置,字串B要在字串A后面)
0这是2a一b个4c测试6的字串
这里原本是想写成像字典的注解那样,
但是注解有两种以上,插入的位置就很难抓了…
有人知道这里该怎么写吗?
想了两天还是想不出来…
作者: ssccg (23)   2017-06-15 15:59:00
先照要插入的位置排序,依序插入,每个插入位置要加上前面已插入字串的长度总和
作者: zcbxvsdf (东北一头羊)   2017-07-02 23:58:00
先把B,C,D...的合并到A再做插入B-index跑循环,判断A-Index是否contains,再对A-Input那个index做set A+B,三个以上Input以此类推,最后A再对原文合并

Links booklink

Contact Us: admin [ a t ] ucptt.com