从java中的字符串替换多个char

时间:2013-06-19 10:46:07

标签: java string

我有一个PHP脚本<?=str_replace(array('(',')','-',' ','.'), "", $rs["hq_tel"])?>这是一个字符串替换函数,它接受字符数组并在找到字符串中的任何字符时替换它们。是否有任何java等效的函数。我找到了一些方法,但有些方法正在使用循环,有些方法重复这些语句,但在java中找不到任何单行解决方案。

提前致谢。

4 个答案:

答案 0 :(得分:22)

你可以使用这样的正则表达式:

//char1, char2 will be replaced by the replacement String. You can add more characters if you want!
String.replaceAll("[char1char2]", "replacement");

其中第一个参数是regex,第二个参数是replacement

请参阅docs,了解如何转义特殊字符(如果需要!)。

答案 1 :(得分:15)

你的解决方案就在这里..

替换所有特殊字符

str.replaceAll("[^\\dA-Za-z ]", "");

替换特定的特殊字符

str.replaceAll("[()?:!.,;{}]+", " ");

答案 2 :(得分:2)

String.replaceAll(String regex, String replacement)

答案 3 :(得分:1)

如果您不了解正则表达式,可以使用更详细的内容:

private static ArrayList<Character> special = new ArrayList<Character>(Arrays.asList('(', ')', '-', ' ', '.'));

public static void main(String[] args) {
    String test = "Hello(how-are.you ?";
    String outputText = "";

    for (int i = 0; i < test.length(); i++) {
        Character c = new Character(test.charAt(i));
        if (!special.contains(c))
            outputText += c;
        else
            outputText += "";
    }

    System.out.println(outputText);
}

<强>输出: Hellohowareyou?

编辑(没有循环但使用正则表达式)

public static void main(String[] args) {
    String test = "Hello(how-are.you ?)";
    String outputText = test.replaceAll("[()-. ]+", "");

    System.out.println(outputText);
}