黑马程序员技术交流社区
标题:
扩展习题:ArrayList去除集合中包含数字字符的元素
[打印本页]
作者:
Zrz_K
时间:
2015-12-23 23:34
标题:
扩展习题:ArrayList去除集合中包含数字字符的元素
/**
* 需求
* ArrayList去除集合中包含数字字符的元素。(提示:.*\\d.*)
* 注意事项
* 使用正则表达式
*/
public static void main(String[] args) {
ArrayList<String> c = new ArrayList<>(); //创建集合对象
c.add("asad");
c.add("d213");
c.add("cad");
c.add("a^$5");
c.add("a2");
c.add("2");
String regex = ".*\\d.*"; //通配符规则:所有含有数字的字符串
removeRegex1(c, regex); //调用方法,移除c集合中符合regex的元素
//removeRegex2(c, regex);
System.out.println(c);
}
//方法1:for循环遍历,注意索引需自减1,否则会跳过一个元素
private static void removeRegex1(ArrayList<String> c, String regex) {
for (int i = 0; i < c.size(); i++) {
if (c.get(i).matches(regex)){
c.remove(i--);
}
}
System.out.println(c);
}
//方法2:迭代器遍历,注意使用迭代器自己的移除方法避免并发修改异常
private static void removeRegex2(ArrayList<String> c, String regex) {
Iterator it = c.iterator();
while (it.hasNext()) {
String s = (String) it.next();
if (s.matches(regex)) {
it.remove();
}
}
}
复制代码
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2