每當我嘗試運行代碼時,我都會得到IndexOutOfBoundsException。我嘗試了很多方法來修復它,但沒有一個能夠幫助。在每個長度等於4的String之前,該方法應該在ArrayList中添加一個新的String元素「****」。在這種情況下,它必須在「5555」之前添加「****」。ArrayList中的IndexOutOfBoundsException Java
問題出在哪裏?
import java.util.ArrayList;
public class Main {
public static ArrayList<String> markLength4(ArrayList<String> list) {
int sum = 0;
for (int i = 0; i < list.size(); i++) {
if (list.get(i).length() == 4) {
list.add(list.indexOf(i), "****");
}
}
return list;
}
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("ddddddddddddd");
list.add("fffffffffffff");
list.add("5555fdgdfg");
list.add("5555");
list.add("5555");
System.out.println(markLength4(list));
}
}
'i'不在你的數組列表中 - 它是'String'的列表,而不是'Integer'。這意味着'list.indexOf(i)== -1'。你只是指'list.add(我,「****」);'? –