在"+"符号上拆分Java字符串会出错

Qua*_*ool 2 java regex string split patternsyntaxexception

我正在编写一个java程序,其中一个子任务是获取一个字符串并将其拆分到一个位置.所以,这是我的代码的一小部分:

public class Driver
{
    public static void main(String[] args)
    {
        String str = "a+d";
        String[] strparts = str.split("+");
        for (String item : strparts)
        {
            System.out.println(item);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我期待结果:

a
d
Run Code Online (Sandbox Code Playgroud)

但令我惊讶的是,我得到:

Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '+' near index 0
+
^

    at java.util.regex.Pattern.error(Pattern.java:1955)
    at java.util.regex.Pattern.sequence(Pattern.java:2123)
    at java.util.regex.Pattern.expr(Pattern.java:1996)
    at java.util.regex.Pattern.compile(Pattern.java:1696)
    at java.util.regex.Pattern.<init>(Pattern.java:1351)
    at java.util.regex.Pattern.compile(Pattern.java:1028)
    at java.lang.String.split(String.java:2367)
    at java.lang.String.split(String.java:2409)
    at Test.Driver.main(Driver.java:8)
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?
谢谢!

Avi*_*Raj 7

+是正则表达式中的特殊元字符,它重复前一个字符一次或多次.你需要逃避它以匹配文字+

String[] strparts = str.split("\\+");
Run Code Online (Sandbox Code Playgroud)