2 回答

TA貢獻1836條經驗 獲得超3個贊
你沒有做錯任何邏輯。只是您在 while 循環(huán)內而不是在外面打印。
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個贊
因為您在循環(huán)中打印輸出,每個循環(huán)都會有一個輸出。
要糾正它,只需將輸出移出循環(huán)即可。
例如
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]
添加回答
舉報