前者只是一普通的字符号串替换,后者是一个支持正则表达式的替换
eg:
String str = "2008.1.12";
现有需要将字符串中的"."替换为"_"。
一种方法是老老实实使用str.replace(".","_");
若是使用str.replaceAll(".","_")
那str中所有字符均会被替换为"_"。
因为在正则表达式中,"."代表任意字符。
正确做法是在replaceAll的第一个参数中使用转义构造正确的正则表达式。
如:
str.replaceAll("//.","_");
replaceAll使用范例:
public static String dateToFileName(String date) {
String separator = "_";
date = date.replaceAll(" ", separator);
date = date.replaceAll("//.", separator);
date = date.replaceAll(":", separator);
date = date.replaceAll("-", separator);
date = date.replaceAll("/", separator);
return date;
}