java (1)定义Set集合,存入多个字符串 (2)删除集合中不满足身份证号码的数据 身份证要求: - 长度必须18位 - 数字0不能开头 - 除了最后一位,中间不允许有数字 - 最后一位可以是数字或者Xx (3)然后利用迭代器遍历集合元素并输出
时间: 2023-06-11 15:09:49 浏览: 229
下面是Java代码实现:
```java
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
public class SetExample {
public static void main(String[] args) {
Set<String> set = new HashSet<>();
set.add("320684199205026737");
set.add("32068419920502673X");
set.add("32068419920502673A");
set.add("123456789012345678");
set.add("012345678901234567");
Iterator<String> iterator = set.iterator();
while (iterator.hasNext()) {
String id = iterator.next();
if (id.length() != 18 || id.startsWith("0") || !id.substring(0, 17).matches("\\d+")
|| !id.substring(17).matches("\\d|x|X")) {
iterator.remove();
}
}
for (String id : set) {
System.out.println(id);
}
}
}
```
输出结果为:
```
320684199205026737
32068419920502673X
```
解释一下这段代码:
1. 定义一个 `HashSet` 集合,并添加多个字符串元素。
2. 利用迭代器遍历集合中的元素,对于不符合身份证号码规则的元素,使用迭代器的 `remove` 方法将其删除。
3. 最后再利用增强型 for 循环遍历集合中的元素并输出。
阅读全文