注意使用正则表达式和普通字符串的区别:
昨天发现一个因为误用正则表达式而导致的bug,
错误代码:
public String get××××() {
        
if(mountPoint!=null && mountPoint.length()>0){
            
return mountPoint.replaceAll("\\?""\\|");
        }
else
            
return "";    
    }

这段代码的本意是为了将mountPoint中的所有?替换成为|,但是由于没有仔细看replaceAll的参数说明,导致了两个参数都是用regular express所必需的\\转义符号。
replaceAll(String regex, String replacement)

因此正确的代码是:
public String get××××() {
        
if(mountPoint!=null && mountPoint.length()>0){
            
return mountPoint.replaceAll("\\?""|");
        }
else
            
return "";    
    }

同样需要注意的包括indexOf,split