看下面的代码:

String comment = "1)FCR pick up in Hong Kong2)Local charges will be paiy in Hong Kong & in HK$.3)Booking:[email protected])FCR&DOC:[email protected]:00852-23021977Fax:00852-2730217Transaction865320submittedVirginiaWong(T1281954U005) and Status is INCMP  on 10-JUN-11 11.28.45.764386 PM -05:00";
        //comment = comment.replaceAll("\\)", "\\\\)");
        //comment = comment.replaceAll("\\(", "\\\\(");
          if(comment == null || comment.length() < 100)
          {
            System.out.println();
          }
         String[] strArray =    comment.split(" ");
         for (int i = 0; i < strArray.length; i++)
           {
              if(strArray[i].length() > 100)
               {
                 int iter = strArray[i].length() / 100 ;
                 int count = 100 ;
                 int initCount = 0 ;
                 String strReplace = null;

                    for(int j =0 ; j< iter ; j++)
                    {
                      strReplace = strArray[i].substring(initCount ,count);

                      String strToReplace =  strReplace + "\n" ;
                      comment = comment.replaceAll(strReplace,strToReplace);
                      //comment = comment.replaceAll("\\)", "\\\\)");
                      //comment = comment.replaceAll("\\(", "\\\\(");
                      //comment = comment.replaceAll("\\\\", "");
                      System.out.println(comment);
                      System.out.println(comment.contains("\n"));
                      initCount = count; //+1 ;
                      count = count +100 ;
                    }

                }

            }
    }



运行时,出现以下异常:


  线程“主”中的异常java.util.regex.PatternSyntaxException:索引4附近无匹配的关闭')'
  HK $ .3)预订:[email protected])FCR&DOC:[email protected]电话:00852-23021977传真:00852-2


根据我的理解,我必须避免使用括号“(',')',
我试图做到这一点(看一下代码中的注释部分),没有任何异常,但是我添加到字符串的换行符似乎没有出现。

最佳答案

String.replaceAll将正则表达式用作第一个参数,而)之类的字符在解释为正则表达式时具有特殊含义。

尝试使用String.replace。 (它仍然替换所有出现的给定子字符串。)

09-10 13:16