0

我有这部分代码逐行读取文件。这个即将编辑的原始行是:j(ac) "test" /Aaa,Bbb/

我有一个带有元素 [Ccc,Ddd,Eee] 的数组列表,我希望这些元素在 / 和 / 之间的上述行中被替换。/ 和 / 之间的替换工作正常。但是我不能将 arraylist 直接放到 .replace 中,因为 [] 也会出现。所以我正在尝试添加列表的元素。但是我无法得到想要的结果,即:j(ac) "test" /Ccc,Ddd,Eee/

我一直只得到第一个元素: j(ac) "test" /Ccc/

我该如何解决这个问题?

List<String> strlist = new ArrayList<String>() ;

Scanner scanner = new Scanner(file);

 while (scanner.hasNextLine()) {
               String line = scanner.nextLine();

               if (line.contains("j(ac)")) {   

                   String skat ;
                   skat = null ;

                   for(String s : strlist) {
                   for (int index = 0; index < strlist.size(); index++) {

                               s = strlist.get(index);
                       skat=s;
                   }
                   }
                  String next = line.replaceAll("/.*?/", "/"+skat+"/");

                   System.out.print(next);


               }
4

2 回答 2

2

你很亲密。

你只需要改变,

skat=s;skat = skat + "," + s;

这样,您将追加到列表中,添加逗号,而不是每次迭代都重置 skat。

于 2013-09-17T20:33:55.297 回答
0

在你有 skat=s 的地方,它必须是 skat+=s,所以它附加到 skat,而不是在循环的每次迭代中用新字符串替换它

于 2013-09-17T20:31:06.577 回答