Hil*_*nea 2 java string iterator letter hashset
我有一个字符串哈希集(称为“名称”),我想从其中删除所有包含至少一个不是大写字母的字符的字符串。我写了这段代码,它不起作用:
Iterator<String> iterator=names.iterator();
while(iterator.hasNext()) {
for (int i=0; i<iterator.next().length(); i++) {
if (iterator.next().charAt(i) < 'A' || iterator.next().charAt(i) > 'Z') {
names.remove(iterator.next());
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果使用removeIf正则表达式则使用Java-8,这是另一个解决方案[A-Z]+:
Set<String> names = //.. some inputs
names.removeIf(str -> !str.matches("[A-Z]+")); // remove if not matches [A-Z]+
Run Code Online (Sandbox Code Playgroud)
请注意,在此解决方案中,您根本不需要将列表转换为迭代器,也不需要通过循环检查字符,只需通过正则表达式进行匹配即可。
| 归档时间: |
|
| 查看次数: |
76 次 |
| 最近记录: |