当前位置: 代码迷 >> J2SE >> java.lang.String replaceAll()方法的一个错误有关问题
  详细解决方案

java.lang.String replaceAll()方法的一个错误有关问题

热度:572   发布时间:2016-04-24 12:45:08.0
java.lang.String replaceAll()方法的一个异常问题
我想把一个字符串中包含下面这行字符串中含的字符全部去掉
Java code
String strBadChar ="+,\',%,^,&,?,(,),<,>,[,],{,},/,\\,;,:," + (char)(34) +"," + (char)(0) + ",--";String[] arrBadChar=new String[21];int i;String temString;arrBadChar=strBadChar.split(",");temString=charinput;//charinput存放的是自己输入的一个字符串(也就是想把charinput中包含有strBadChar 中的字符全部过滤掉)for (i=0;i<arrBadChar.length;i++){temString=temString.replaceAll(arrBadChar[i], "");//此处有问题}temString=temString.replaceAll("@@", "@");



------解决方案--------------------
我知道了。
replaceAll是利用正则表达式来替换的,如果字符串中含有正则表达式字符,则必须用转义字符将它表示成字母含义的字符,才能够进行替换。
------解决方案--------------------
比如+,应该写成\+,才能被识别成+号
------解决方案--------------------
String strBadChar ="\\+,\',%,^,&,\\?,\\(,\\),<,>,\\[,\\],\\{,\\},/,\\\\,;,:," + (char)(34) +"," + (char)(0) + ",--";
  相关解决方案