What is the difference between replace and replaceAll in Java?
People out there have misconception about replace and replaceAll. I was having random discussion with my colleague he said replace is used to replace first occurrence of Character/String in String and replaceAll used to replace all occurrence of Character/String in String.
For those who has misconception about replace and replaceAll
replace: It will replace all occurrence of Character/String matched in String. replace can't process Regular Expression.
replaceAll: It will replace all occurrence of Character/String matched in String. replaceAll can process Regular Expression.
Source Code
public class ReplaceExample { public static void main(String[] args) { String str = "@aa @bx @ca @ax"; System.out.println("Original String: "+str); System.out.println("------------------------"); /* replace '@a' with 's' */ System.out.println("replace: "+str.replace("@a", "s")); /* replace can't process REGULAR EXPRESSION */ System.out.println("replace(with regexp): "+str.replace("@[a-z]*", "s")); /** * replaceAll can process REGULAR EXPRESSION * Replace any String followed by '@' */ System.out.println("replaceAll: "+str.replaceAll("@[a-z]*", "s")); } }
Output
Original String: @aa @bx @ca @ax ------------------------ replace: sa @bx @ca sx replace(with regexp): @aa @bx @ca @ax replaceAll: s s s s
0 comments :