【发布时间】:2014-12-09 14:53:16
【问题描述】:
我正在尝试创建一种方法来删除两个字符串的字母范围内的所有单词。我给出的参数应该基本上删除所有内容,但这是我的输出:
[还有,我的朋友们]
我真的不明白为什么???
public static void main(String[] args) {
ArrayList<String> stringList = new ArrayList<String>();
stringList.add("hello");
stringList.add("and");
stringList.add("welcome");
stringList.add("my");
stringList.add("little");
stringList.add("friends");
System.out.println(stringList);
removeInRange(stringList, "abc", "zen");
}
public static void removeInRange(ArrayList<String> arrayList, String start, String end) {
char startChar = start.charAt(0);
char endChar = end.charAt(0);
for (int i = 0; i < arrayList.size(); i++) {
Character target = arrayList.get(i).charAt(0);
for (char c = startChar; c <= endChar; c++) {
if (target.equals(c)) {
arrayList.remove(i);
}
}
}
System.out.println(arrayList);
}
【问题讨论】:
-
当您从列表中删除并在选择
arrayList.get(i)时更改i时,不要将索引用作迭代的一部分
标签: java arraylist alphabetical