如何剥离Android中不需要的字符?

时间:2015-02-10 06:03:34

标签: java android string

我有这段代码

public String StripText(String name){

        String stripped = name.replaceAll("/:!@#$%^&*()<>+?\"{}[]=`~;", "");

        return stripped;
    }

哪个不起作用。我希望它返回一个字符串,删除像“/”“:”“!”这样的字符的出现。 “@”等等。

e.g。如果我给它一个字符串“puppy :) love”,我希望它返回一个只包含“puppylove”的字符串。

2 个答案:

答案 0 :(得分:2)

你只需要将所有字符放在character class内。使用“字符类”,也称为“字符集”,你可以告诉正则表达式引擎只匹配几个字符中的一个。只需将要匹配的字符放在方括号中即可。

String stripped = name.replaceAll("[/:!@#$%^&*()<>+?\"{}\\[\\]=`~;]", "");

您还需要转义字符类中存在的[]个字符,否则它会将第一个]视为charclass的结尾。

示例:

String name = "[{puppy:)love}]";
String stripped = name.replaceAll("[/:!@#$%^&*()<>+?\"{}\\[\\]=`~;]", "");
System.out.println(stripped);

<强>输出:

puppylove

答案 1 :(得分:1)

您需要转义所有特殊字符或在代码中使用[]〜;] + [/:!@#$%^&*()<>+?\"{}[]=