能不能用写一个方法一次删除指定字符串中不想要的字符,我写了一个但不好,谁能给我优化一下
        public static String delString(String inputString,String delStrs)
        {
          if (inputString==null || inputString.length() ==0) return inputString;
          if (delStrs==null || delStrs.length() ==0) return inputString;
          inputString = inputString.trim();
          String[] strs = strToStrArray(delStrs);
          for(int i = 0 ;i <strs.length ; i++){
            inputString = inputString.replaceAll(strs[i],"");
          }
           inputString = inputString.replaceAll(" ","");
          inputString = inputString.replaceAll("\\(|\\)", "");
          return inputString;
        }
最好用正则表达式

解决方案 »

  1.   

    加上\\就可以了!  String.replaceAll("\\)","");
      

  2.   

    看来我写的方法大家还没有完全清楚String opString = "  中 华 人 民 共 和 国 (人民政府) 万岁!!";
    StrUtil.delString("","/,-,_,',(,),&,$,%,=,#,@,!,~");执行这个方法后,空格符号可以都被删除。
      

  3.   

    public class ReplTest {
        public static void main(String[] args) { 
            String opString = "  中 华 人 民 共 和 国 (人民政府) 万岁!!";
            System.out.println(delString(opString,"/,-,_,',(,),&,$,%,=,#,@,!,~");
        }
        
        public static String delString(String inputString,String delStrs)
            {
              if (inputString==null || inputString.length() ==0) return inputString;
              if (delStrs==null || delStrs.length() ==0) return inputString;
              inputString = inputString.trim();          String[] strs = delStrs.split(",");  /////////////////          for(int i = 0 ;i <strs.length ; i++){
                inputString = inputString.replaceAll(strs[i],"");
              }
               inputString = inputString.replaceAll(" ","");
              inputString = inputString.replaceAll("\\(|\\)", "");
              return inputString;
            }}
      

  4.   

    delString(opString,"/,-,_,',\\(,\\),&,$,%,=,#,@,!,~"));
    如果(是全角字符没有关系
    可以:
    delString(opString,"/,-,_,',(,),&,$,%,=,#,@,!,~"));如果是半角就会出错
    应该这样写:
    delString(opString,"/,-,_,',\\(,\\),&,$,%,=,#,@,!,~"));
      

  5.   

    我终于写出来了,如果什么地方不对请各位大侠指正        /**
             * 删除字符串中指定的字符
             * 只要在delStrs参数中出现的字符,并且在inputString中也出现都会将其它删除
             * @param inputString 待做删除处理的字符串
             * @param delStrs 作为删除字符的参照数据,用逗号分隔。如果要删除逗号可以在这个字符串再加一个逗号
             * @return 返回一个以inputString为基础不在delStrs出现新字符串
             */
            public static String delString(String inputString,String delStrs)
            {
               if (inputString==null || inputString.length() ==0)  return inputString;           String[] strs = strToStrArray(delStrs);
               for(int i = 0 ;i <strs.length ; i++){
                 if(strs[i].equals(""))
                   inputString = inputString.replaceAll(" ","");
                 else
                 {
                   if(strs[i].compareTo("a")>=0)
                     inputString = inputString.replaceAll(strs[i],"");
                   else
                     inputString = inputString.replaceAll("\\"+strs[i],"");
                 }
               }
               if(subCount(delStrs,",")>strs.length)
                 inputString = inputString.replaceAll("\\,","");          return inputString;
            }
      

  6.   

    String[] strs = strToStrArray(delStrs);
    strToStrArray这个方法你怎么不一起给出来
      

  7.   

    如果你真的感兴趣我可以给你呀!!
    public static String[] strToStrArray(String str) {
    return strToStrArrayManager(str, ",");
    } /**
     * 将字符串对象按给定的分隔符separator转象为字符型数组对象
     * @param str 待转换的符串对象
     * @param separator 字符型分隔符
     * @return 字符型数组
     */
    public static String[] strToStrArray(String str, String separator) {
    return strToStrArrayManager(str, separator);
    } private static String[] strToStrArrayManager(
    String str,
    String separator) { StringTokenizer strTokens = new StringTokenizer(str, separator);
    String[] strArray = new String[strTokens.countTokens()];
    int i = 0; while (strTokens.hasMoreTokens()) {
    strArray[i] = strTokens.nextToken().trim();
    i++;
    } return strArray;
    }