System.out.println("1234567890abcdef -----> "+"1234567890abcdef".replace("12345", "ABCDE"));
System.out.println("1234567890abcdef -----> "+"1234567890abcdef".replaceAll("12345", "ABCDE"));
System.out.println("!@#$%^&*()-=Abcd -----> "+"!@#$%^&*()-=Abcd".replace("#$%^&", "OK"));
System.out.println("!@#$%^&*()-=Abcd -----> "+"!@#$%^&*()-=Abcd".replaceAll("#$%^&", "OK"));
执行结果:
1234567890abcdef -----> ABCDE67890abcdef Replace 将目标代码成功替换
1234567890abcdef -----> ABCDE67890abcdef ReplaceAll 也将目标代码成功替换
!@#$%^&*()-=Abcd -----> !@OK*()-=Abcd Replace 将目标代码成功替换
!@#$%^&*()-=Abcd -----> !@#$%^&*()-=Abcd ReplaceAll 目标代码替换失败
可以明显发现,String.ReplaceAll 在对特殊字符的替换上与String.Replace 存在一定的差异。