字符串的lowerCase转换[^ a-zA-Z0-9]

时间:2015-10-11 21:07:56

标签: java expression

有一个字符串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));
}

2 个答案:

答案 0 :(得分:1)

正则表达式匹配所有非a-z或A-Z或0-9的字符。 这些字符被替换为什么,说从字符串中删除。 然后一切都转换成小写。

所以你最终会得到一个只包含数字和小写字母的字符串。这对于您想要清理或类似的用户输入非常重要

答案 1 :(得分:1)

正则表达式[^a-zA-Z0-9]删除(替换为"")来自A to Z0 till 9的任何字符不同
之后,它将小写.toLowerCase())字符串中的所有剩余字符,即:

String s = "abc&AA_";

将成为:

abcaa

实时示例

http://ideone.com/ZzemM5