Which replace function works with regex?
More than often we need to manipulate a string, substitute characters inside a string. In Java, the String class, there are a couple of methods that we can use to complete this task.
1. public String replace(char oldChar, char newChar)
This method "returns a new string resulting from replacing all occurrences of oldChar in this string with newChar."
Both oldChar and newChar are single char.
For example, String a = "This is a cat.";
String b = a.replace('c', 'r');
b has the value of "This is a rat.".
2. public String replace(CharSequence target, CharSequence replacement)
This method "replaces each substring of this string that matches the literal target sequence with the specified literal replacement sequence."
String c = "This is a cat.";
String d = c.replace("ca", "rabbi");
d has the value of "This is a rabbit.".
Note: this method only works with replacing a sub string with a string, it doesn't work with regex. For example:
String e = "This is a cat.";
String f = e.replace("\\s", "b");
f is still "This is a cat.". Because the function is looking for a string like "\s" to replace.
Sometimes, you need to replace many characters, regex comes handy. For example, you want to create a clean url for an article by using its title, but a title can contain special characters that may break your url. One way to do this is to strip out all the non-alphanumerics from the string. Then you will need to use the following method to handle regex target.
3. public String replaceAll(String regex, String replacement)
This method "replaces each substring of this string that matches the given regular expression with the given replacement."
String title = "Since When Do Politicians \"Care\" About Newspapers?";
String result = title.replaceAll("[^a-zA-Z0-9\\s]", "");
result = result.replaceAll("\\s", "-"); // replace white spaces to "-".
The result is "Since-When-Do-Politicians-Care-About-Newspapers";
4. public String replaceFirst(String regex, String replacement)
This method "replaces the first substring of this string that matches the given regular expression with the given replacement."
String title = "Since When Do Politicians Care About Newspapers?";
String result = title.replaceAll("[^a-zA-Z0-9\\s]", "");
result = result.replaceAll("\\s", "-"); // replace white spaces to "-".
The result is "Since-WhenDo Politicians Care About Newspapers?".
Most Recent java Faqs
- How to uncompress a file in the gzip format?
- How to make a gzip file in Java?
- How to use Java String.split method to split a string by dot?
- How to validate URL in Java?
- How to schedule a job in Java?
- How to return the content in the correct encoding from a servlet?
- What is the difference between JDK and JRE?
Most Viewed java Faqs
- How to read input from console (keyboard) in Java?
- How to use HttpURLConnection POST data to web server?
- How to add BASIC Authentication into HttpURLConnection?
- How to Retrieve Multiple Result Sets from a Stored Procedure in JDBC?
- What are class variables in Java?
- What are local variables in Java?
- How to Use Updatable ResultSet in JDBC?