忽略字符串中的任何非字母字符和大写字母

时间:2014-01-15 14:20:28

标签: java regex string

问一个愚蠢的问题,但这里是:

我希望忽略任何非字母字符以及字符串中的大写字母。

        if (names[j].matches("[a-zA-Z]+")){
            System.out.println(names[j] + ":");
        }

我有类似的东西来测试是否有非字母字符给出并且它有效,只是不确定如何忽略它们。

任何建议都会很精彩。谢谢。

2 个答案:

答案 0 :(得分:1)

如果你想忽略它们并将它们删除,只需使用正则表达式匹配它们并用空字符串替换它们。 String#replaceAll可以使用正则表达式。

答案 1 :(得分:1)

在@Jeff Storey的答案中进行支持:

使用空字符串对正则表达式[^a-zA-Z]+进行替换 如果你真的不想忽视大写

更换后,将String转换为小写

public static void main(String[] args) throws Exception {
    String hello = "NAtalie7@";
    hello = hello.replaceAll("[^a-zA-Z]+","").toLowerCase();
    System.out.println(hello);
}

将输出:

natalie

如果您想忽略第一个字符而不管它是什么,那么您可以使用:

String hello = "NAtalie7@";
String ignoreFirstChar = hello.charAt(0) + (hello.substring(1,hello.length()).replaceAll("[^a-zA-Z]+", "").toLowerCase());
System.out.println(ignoreFirstChar);

将输出:

Natalie