您的位置:首页 > 编程语言 > Java开发

java list remove的问题

2018-02-10 00:09 267 查看
以字符串去除特定字符这个例子来解释:
import java.util.*;
public class 字符串去除特定字符 {

public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input = new Scanner(System.in);
List<Character> list = new ArrayList<>();

while (input.hasNext()) {
String str1 = input.nextLine();
String str2 = input.nextLine();

char ch = str2.charAt(0);

for (int i = 0; i < str1.length(); i++) {
list.add(str1.charAt(i));
}
// 方法1:for (int i = list.size()-1; i >=0; i--) {
// list的remove从后面,从前面要i--,从后面遍历不用考虑,因为移除一个后size-1,并不会影响到前面元素的坐标
// if (list.get(i) == ch)
// list.remove(i);
// }
for(int i=0;i<list.size();i++) {
if(list.get(i)==ch) {
list.remove(i);
i--; 
   //从前面遍历移除一个,i--,因为移除一个之后list容器size-1,所以后面的一个元素之前的下标是i+1就变成i了,如果不i--   //就会跳过当前移除元素后面的元素,而是下一个的下一个 l例如
//字符串abbd
//字符b

//会输出abd
//字符串abbbbd
//字符b
//会输出abbd

}

}
for (char e : list)
System.out.print(e);
System.out.println();
list.clear();
}
}
}
当然,此题这个例子使用replaceAll(ch,"")后者StringBuffer  s = new StringBuffer()更方便.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息