有一个字符串s
,我看到了一个代码:
s = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
使用这种代码的原因是什么?它做了什么?
这是完整的解决方案:
public static boolean isValidPalindrome(String s){
if(s==null||s.length()==0) return false;
s = s.replaceAll("[^a-zA-Z0-9]", "").toLowerCase();
System.out.println(s);
for(int i = 0; i < s.length() ; i++){
if(s.charAt(i) != s.charAt(s.length() - 1 - i)){
return false;
}
}
return true;
}
public static void main(String[] args) {
String str = "A man, a plan, a canal: Panama";
System.out.println(isValidPalindrome(str));
}
答案 0 :(得分:1)
正则表达式匹配所有非a-z或A-Z或0-9的字符。 这些字符被替换为什么,说从字符串中删除。 然后一切都转换成小写。
所以你最终会得到一个只包含数字和小写字母的字符串。这对于您想要清理或类似的用户输入非常重要
答案 1 :(得分:1)
正则表达式[^a-zA-Z0-9]
将删除(替换为""
)来自A to Z
和0 till 9
的任何字符不同 。
之后,它将小写(.toLowerCase()
)字符串中的所有剩余字符,即:
String s = "abc&AA_";
将成为:
abcaa
实时示例