上干货,~
这是一道今天的 课后作业,我写了好长时间,然后怎么都不会 用 迭代 去 满足题目的要求, 现在上原题~:
分析以下需求,并用代码实现:
(1)定义List集合,存入多个字符串
(2)删除集合中包含0-9数字的字符串(只要字符串中包含0-9中的任意一个数字就需要删除此整个字符串)
(3)然后利用迭代器遍历集合元素并输出
代码:
-----------------------------------------------------------------------------------------------------------------
package Demo;
import java.util.ArrayList;
import java.util.List;
import java.util.ListIterator;
import java.util.Scanner;
public class crazy {
public static void main(String[] args) {
List list = new ArrayList();
String str = "(.)*([0-9])+(.)*";
Scanner sc = new Scanner(System.in);
System.out.println("请输入字符串,当输入\"quit\"时,结束:");
while(true){
String ss = sc.nextLine();
if (ss.equals("quit")) {
break;
}
list.add(ss);
}
System.out.println(list);
List list2 = new ArrayList();
for (int i = 0; i <list.size(); i++) {
if(((String)list.get(i)).matches(str)) {
list2.add(list.get(i));
}
}
System.out.println(list2);
list.removeAll(list2);
System.out.println(list);
ListIterator lit = list.listIterator();
}
}
----------------------------------------------------------------------------------------------------
总结下:
我大概的思路是这个样子的~
1,先创建一个 集合,用来存储由键盘录入的数据,(是所有的数据.) list
2使用键盘录入,创建Scanner对象,然后通过 循环来添加进入集合~
3,写出正则, 使用 String 中的 matchers 方法,
4,再次创建一个 集合,这个对象用来存储需要删除的. list2
5,通过 list 中的 get() size() 方法,进行for循环判断 其中元素是否满足 正则要求
6,将上面 满足正则要求的数据存入 list2中,
7,使用 list.removeAll(list);
8输出list,得到答案.
-----------------------------------------------------------------------------------------
但是感觉没有用到今天的 内容知识 啊,
考虑过使用 迭代的方式来做, 但是不知道怎么 去调用matchers 这个方法,
然后不知道怎么写中间的 数值.
有知道的,请不要吝惜你们的 脑细胞,
互相讨论,我看看别人的思路....
|
|