java如何正确迭代两个循环
我想将我的字符串替换为其他字符串,但没有很多符号。例如,我有“我想成为!#$%@!”,它应该返回“Iwanttobe”。但不幸的是,它先迭代第一个循环(第一个字符),然后迭代整个第二个循环。我希望它遍历所有第一个,然后遍历所有第二个,并在此基础上向我的新表中添加字符
这是我的方法:
public static List<Character> count (String str){
char[] chars = str.toCharArray();
List<Character> charsWithOutSpecial = new ArrayList<>();
char[] specialChars = {' ','!','"','#','$','%','&','(',')','*','+',',',
'-','.','/',':',';','<','=','>','?','@','[',']','^','_',
'`','{','|','}','~','\\','\''};
for (int i = 0; i < specialChars.length; i++) {
for (int j = 0; j < chars.length; j++) {
if(specialChars[i] != chars[j]){
charsWithOutSpecial.add(chars[j]);
}
}
}
return charsWithOutSpecial;
}
# 1 楼答案
您可以这样修复您的方法:
# 2 楼答案
你想要的正则表达式可能是[^a-zA-Z]
但是你也可以用两个循环来实现
# 3 楼答案
这应该可以做到: