我想把一个字符串中包含下面这行字符串中含的字符全部去掉
- 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) + ",--";