结论:不要
需求
写一个判断字符串是否满足占位符格式的方法 ,占位符格式是常见的 ${}
三种写法
// 第一种
public static String translatePlaceHolder(String before){
if(null == before){
return before;
}
if(Pattern.matches("^\\$\\{.*\\}$",before)){
return before.substring(2,before.length()-1);
}
return before;
}
// 第二种 由于${}是固定的,所以对象初始化一次
private static Pattern pattern = Pattern.compile("^\\$\\{.*\\}$");
public static String translatePlaceHolder(String before){
if(null == before){
return before;
}
if(pattern.matcher(before).matches()){
return before.substring(2,before.length()-1);
}
return before;
}
// 第三种,简单的startWith和endWith
public static String translatePlaceHolder(String before){
if(null == before){
return before;
}
if(before.startsWith("${") && before.endsWith("}")){
return before.substring(2,before.length()-1);
}
return before;
}
遍历十万次,第一种最慢,180~210 毫秒
第二种少了初始化动作,相对快一点,90~100毫秒
第三种最快,15~20 毫秒
结论,简单的表达式别用正则。