java - 线程 "main"java.util.regex.PatternSyntaxException : Illegal repetition 中出现异常

标签 java exception

public static void main(String s[]) {
        System.out.println(new Binary().meth());
            }
 String meth(){
     String source = "{Hi|Hello|Hey}, how are you {today|doing}?";
     List<String> list1=new ArrayList<String>();
     List<String> list2=new ArrayList<String>();
     String[] strg=source.split("{");
     for(String str: strg){
         String[] data=str.split("}");
         list1.add(data[0]);
         list2.add(data[1]);
     }
     Random random = new Random();
     String[] req=new String[list1.size()];
     int i=0;
     for(String str: list1){
         req[i++]= str.split("|")[random.nextInt(str.split("|").length)];
     }
     int j=0;
     String result="";
     for(String str: list2){
         result=result+req[j++]+str;
     }
     return result;
 }
}

浅谈字符串的字符分割 {给我以下错误-

Exception in thread "main" java.util.regex.PatternSyntaxException: Illegal repetition
{
    at java.util.regex.Pattern.error(Unknown Source)
    at java.util.regex.Pattern.closure(Unknown Source)
    at java.util.regex.Pattern.sequence(Unknown Source)
    at java.util.regex.Pattern.expr(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.util.regex.Pattern.<init>(Unknown Source)
    at java.util.regex.Pattern.compile(Unknown Source)
    at java.lang.String.split(Unknown Source)
    at java.lang.String.split(Unknown Source)
    at Binary.meth(Binary.java:16)
    at Binary.main(Binary.java:10)

最佳答案

{ 是正则表达式中的特殊字符,需要对其进行转义,

使用如下:

source.split("\\{");

关于java - 线程 "main"java.util.regex.PatternSyntaxException : Illegal repetition 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30395693/

相关文章:

java - Java中的简单异常处理

java - 为什么代码执行永远不会进入catch block (java)?

ios - iOS 上的 Flurry 和完整堆栈跟踪

java - Android 警报对话框颜色已关闭

java - 使用 Ant 构建 jar 文件(htsjdk jar)

java - Android 是否有标准的添加/编辑/删除列表约定?

java - JAVA加密一个整数只得到数字字符

java.lang.OutOfMemoryError : PermGen space Exception 错误

java - 上下文相关菜单 - Java ME

java - 从 catch block 中调用 @afterThrowing 建议打印抛出的异常