因此,我正在尝试创建这个循环,该循环可以从阵列列表中删除给定字符串中的特定字符。问题是,当一排相同的字符中有两个相同的字符时,它会错过第二个字符,因为当第一个删除时,第二个字符被推到了数组列表中的一个位置。这就是我到目前为止的。有人知道怎么修这个东西吗?我仍然是Java的初学者,因此任何帮助都将不胜感激。
ArrayList<Character> list = new ArrayList();
String string = "BuBBuopB";
for(int i=0;i<string.length();i++)
list.add(string.charAt(i));
System.out.println("BEFORE: " + list);
for(int i=0;i<list.size();i++)
if(list.get(i).equals('B'))
list.remove(i);
System.out.println("AFTER: " + list);
此示例打印的内容是:[u,b,u,o,p]当我希望它之后:[u,u,o,p]
,而不是使用基于int
的for
循环迭代您的集合,而是使用Iterator
:
Iterator<Character> iter = list.iterator();
while(iter.hasNext()) {
if(iter.next().equals('B')) {
// Remove the last thing returned by next()
iter.remove();
}
}