There is a String.split() method in the java.lang package, and the return is an array.
I have used some of them in my application. Let me summarize them for your reference only:
1. If you use "." as a separator If so, it must be written as follows, String.split("\."), so that it can be separated correctly. String.split(".") cannot be used;
2. If "|" is used as the separation, it must It is written as follows, String.split("\|"), so that it can be separated correctly. String.split("|") cannot be used;
"." and "|" are both escape characters and must be Add "\";
3. If there are multiple delimiters in a string, you can use "|" as a hyphen, for example, "acount=? and uu =? or n=?" To separate them, you can use String.split("and|or");
When using the String.split method to separate strings, if the separator uses some special characters, we may not get the expected results.
Let’s look at the instructions in jdk doc
public String[] split(String regex)
Splits this string around matches of the given regular expression.
The parameter regex is a regular-expression matching pattern rather than a simple String , it may produce unexpected results for some special characters. For example, if you test the following code and use vertical bars | to separate strings, you will not get the expected results
Java code
String[] aa = "aaa|bbb|ccc".split("|");
//String[] aa = "aaa|bbb|ccc".split("\|"); This way you can get the correct result
for (int i = 0; i System.out.println("--"+aa[i]); } Using vertical * to separate strings will throw a java.util.regex.PatternSyntaxException exception, as will using the plus sign +. Java code String[] aa = "aaa*bbb*ccc".split("*"); //String[] aa = "aaa|bbb|ccc".split(" \*"); Only in this way can you get the correct result ]); } Obviously, + * is not a valid pattern matching rule expression, and you can get the correct result after escaping it with "\*" "\+". "|" can be executed when separating strings, but it is not the intended purpose. The correct result can be obtained after escaping "\|". Also, if you want to use the "" character in a string, you also need to escape it. First of all, to express the string "aaaabbbb", you should use "aaaa\bbbb". If you want to separate it, you should use this to get the correct result. Java code String[] aa = "aaa\bbb\bccc".split("\\");