这是问题所在:
编写一个 stutter 方法,将字符串的 ArrayList 作为参数,并将每个字符串替换为该字符串中的两个。例如,如果列表在调用方法之前存储了值 {"how"、"are"、"you?"},它应该存储值 {"how"、"how"、"are"、"are" , "you?", "you?"} 方法完成执行后。
我的代码:
public void stutter(ArrayList<String> list){
for(int i = 0; i < list.size() * 2; i+=2){
list.add(i, list.get(i));
}
}
但是,我的代码给出了 IndexOutofBounds 错误。正确的代码应该有for
循环:
for (int i = 0; i < list.size(); i += 2) {
为什么我的代码是错误的?当我看到正确答案时,我觉得这是错误的,因为你i
每次都会增加 2。那么这是否意味着您第三次循环时i
会是 4 并且会大于 list.size() 的 3?
附带说明一下,在for
循环中,当您重新循环多次时, list.size() 的值会改变吗?还是会在整个for
循环过程中始终保持在三?