Execute the following code
public class App { public static void main(String[] args) { String str = "123+456+712"; String[] strings = str.split("+"); System.out.println(Arrays.toString(strings)); }}
Throw exception
Exception in thread "main" java.util.regex.PatternSyntaxException:Dangling Meta character ' + ' near index 0
- ^
At Java.util.regex.Pattern.error (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.
This occurs because the String class's Split method split accepts a parameter that is a regular expression, which is a meta- + character of the regular expression, which needs to be escaped or throws an exception. Stringthe methods of the class are split as follows.
public String[] split(String regex) { return split(regex, 0);}
The escape in Java's regular is used \\ , so modify it. \\+ + converts from metacharacters to normal + characters.
public class App { public static void main(String[] args) { String str = "123+456+712"; String[] strings = str.split("\\+"); System.out.println(Arrays.toString(strings)); }}
Reference
It's so easy to read regular expressions.
Syntax and examples for Java regular expressions
Java Split function error