替换String中的char

时间:2014-04-22 11:36:20

标签: java regex string replaceall

您好我想替换String中的char。 我的问题是,起初你不知道它是哪个char,所以在某些情况下,当我的char为例如'+'时,我收到一条错误消息。我不希望我的char被解释为正则表达式,所以我该怎么办?

代码应该是这样的:

String test = "something";
char ca = input.chatAt(0);
input = input.replaceAll("" + ca, "");

我希望你能帮助我。

3 个答案:

答案 0 :(得分:2)

那么就不要使用正则表达式。

input = input.replace(String.valueOf(ca), "");

replaceAll的{​​{1}}方法将正则表达式的String表示形式作为参数。

String方法没有。

请参阅API

答案 1 :(得分:0)

实际上替换方法可能含糊不清,如果您更换,请说" zz" - > " XY"在" zzz"字符串(结果将是" xyz"而不是" zxy")。

反过来, replaceAll 更灵活,严格确定其行为。毋庸置疑,它比替换更贵。

当然,在你的情况下, replace 是最好的选择。

答案 2 :(得分:0)

您可以在String类中使用replace(Char oldChar,Char newChar)函数或使用以下函数:

String replaceChar(String input, char oldChar, char newChar){
    StringBuffer sb = new StringBuffer();    
    for(int i = 0; i<input.length(); i++){
        char c = input.charAt(i);
        if(c == oldChar)
             sb.append(newChar);
        else
             sb.append(c);
    }
    return sb.toString();
}