Reputation: 395
Hi I'd like to replace a char in a String. My problem is that at first you don't know which char it is, so in some cases I get an error message when my char is for example '+'. I don't want my char being interpreted as regex, so what should I do?
May code should be something like this:
String test = "something";
char ca = input.chatAt(0);
input = input.replaceAll("" + ca, "");
I hope you can help me.
Upvotes: 0
Views: 236
Reputation: 167
You can Use replace(Char oldChar, Char newChar) function in String class or use the function below:
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();
}
Upvotes: 0
Reputation: 8906
Actually replace method is potentially ambiguous, in case when you replace, lets say "zz" -> "xy" in the "zzz" string (result would be "xyz" and not "zxy").
In its turn, replaceAll is more flexible and it's behaviour is strictly determined. Needless to say, that it is more expensive, than replace.
Definitely, in your case replace is the best choice.
Upvotes: 0