Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 字符串s小写转换为[^a-zA-Z0-9]_Java_Expression - Fatal编程技术网

Java 字符串s小写转换为[^a-zA-Z0-9]

Java 字符串s小写转换为[^a-zA-Z0-9],java,expression,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]", "").toLowerCas

有一个字符串
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));
}
公共静态布尔值IsValidAlindrome(字符串s){
如果(s==null | | s.length()==0)返回false;
s=s.replaceAll(“[^a-zA-Z0-9]”,“).toLowerCase();
系统输出打印项次;
对于(int i=0;i
正则表达式匹配所有非a-z、a-z或0-9的字符。 这些字符被替换为零,表示从字符串中删除。 然后所有内容都转换为小写


因此,您将得到一个只包含数字和小写字母的字符串。这对于您想要清理或类似的用户输入可能很重要

正则表达式
[^a-zA-Z0-9]
删除(替换为
)从
a到Z
0到9不同的任何字符
在此之后,它将小写
.toLowerCase()
)字符串中的所有剩余字符,即:

String s = "abc&AA_";
将成为:

abcaa

现场示例


我正在尝试解决一个回文问题,在programming creek网站中有一个解决方案,并使用此表达式来解决。从
replaceAll
文档中,您可以了解此方法接受正则表达式,从regex教程中,您可以了解到
[^a-zA-Z)-9]
是。