2 回答
TA贡献1836条经验 获得超3个赞
你没有做错任何逻辑。只是您在 while 循环内而不是在外面打印。
while ((line = r.readLine()) != null) {
Matcher m = patt.matcher(line);
while (m.find()) {
int start = m.start(0);
int end = m.end(0);
result.add(m.group());
//System.out.println(result); printing inside and so first u add 1 then 2 then 3.
}
}
System.out.println(result);//Move here
if(!result.isEmpty()){//result != null is redundant. You have already initialized.
System.out.println("Last element is:" + result.get(result.size() - 1));
}
TA贡献1886条经验 获得超2个赞
因为您在循环中打印输出,每个循环都会有一个输出。
要纠正它,只需将输出移出循环即可。
例如
List<Integer> rest = new ArrayList<Integer>();
for(int i=0;i<2;i++){
rest.add(i);
System.out.println(result);
}
输出
i=0: [0]
i=1: [0,1]
纠正它:
List<Integer> rest = new ArrayList<Integer>();
for(int i=0;i<2;i++){
rest.add(i);
}
System.out.println(result);
结果将输出 [0,1]
添加回答
举报