Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
253 views
in Technique[技术] by (71.8m points)

java - Replace all method throws PatternSyntaxException

look at the following code:

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 + "
" ;
                      comment = comment.replaceAll(strReplace,strToReplace);
                      //comment = comment.replaceAll("\)", "\\)");
                      //comment = comment.replaceAll("\(", "\\(");
                      //comment = comment.replaceAll("", "");
                      System.out.println(comment);
                      System.out.println(comment.contains("
"));   
                      initCount = count; //+1 ; 
                      count = count +100 ;
                    } 

                }   

            }
    }


When I run I get the following exception:

Exception in thread "main" java.util.regex.PatternSyntaxException: Unmatched closing ')'
near index 4 HK$.3)Booking:[email protected])FCR&DOC:[email protected]:00852-
23021977Fax:00852-2

From my understanding I have to escape the parantheses'(',')', I tried to do this(look at the commented part in the code)there was nt any exception but the newline I am appending to the string doesn't seem to appear.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

String.replaceAll usess regular expressions for the first argument, and characters such as ) have special meaning when interpreted as regular expressions.

Try String.replace instead. (It still replaces all occurrences of the given substring.)


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...