replaceAll陷阱

如text.replaceAll(filename, newPicName); 出错

filename 中含有正则表达式的特殊字符,正则表达式引擎将其解释为语法错误,改成:

text.replace(filename, newPicName);

这样就行了,按照普通字符来工作。

replaceAll 方法的第一个参数是一个正则表达式。
replace 方法虽然采用采用正则表达式工具工作的,但在其内部已经进行了字面模式处理,
所有的字符都视为普通字符处理。

不要被 replaceAll 中的 All 欺骗了,这两种方法都替换所有的字符串,只是采用的形式
不同已。

注:把“/”换成“/”应该这样写:text.replace('//','/')而不是text.replace('/','/')

 

例如你过滤一些特殊的字符串  用正则

“/”"*"

都不行

只能这样

 

private static String filterSpecialChar(String str)
   {
         String[] specialChar={"'","="," ","//","/","*"};
         String s;
         s=str;
         for(int i=0;i<specialChar.length;i++)
         {
             s=(s.indexOf(specialChar[i])==-1)?s:s.replace(specialChar[i],"");
         }
         return(s);
     }

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章