我有这部分代码读取文件linebyline。即将编辑的原始行是: j(ac)“test”/ Aaa,Bbb /
我有一个元素[Ccc,Ddd,Eee]的arraylist,我想要在/和/之间的行中替换这些元素。 /和/之间的重复工作正常。但是我不能把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);
}
答案 0 :(得分:2)
你非常接近。
你只需要改变,
skat=s;
至skat = skat + "," + s;
通过这种方式,您可以附加到列表中,添加逗号,并且不会在每次迭代时重置skat。
答案 1 :(得分:0)
你有skat = s,它需要skat + = s所以它附加到skat而不是每次迭代循环时用新字符串替换它