The Java. lang package contains the string. Split () method, and an array is returned.
I have used some of them in the application. I will summarize them for your reference only:
1. If ". ", must be written as follows: string. split ("\\. "), in this way, the correct separation is not allowed using string. split (". ");
2. If "|" is used as the separator, it must be written as follows: string. split ("\ |"), in order to correctly separate, cannot use string. split ("| ");
"." And "|" are escape characters and must be added "\\";
3. If a string contains multiple delimiters, you can use "|" as a hyphen, for example, "acount =? And UU =? Or n = ?", Use string. Split ("and | or") to separate all three ");
When the string. split method is used to separate strings, if some special characters are used as separators, the expected results may not be obtained.
Let's seeJDK Doc description
PublicString[]Split(StringRegEx)
Splits this string around matches of the givenRegular Expression.
ParametersRegEx is a regular-expression matching mode instead of a simple string. It may produce unexpected results for some special characters, such asCode:
Use vertical bars | to separate strings and you will not get the expected results
String [] AA = "AAA | BBB | CCC". Split ("| ");
// String [] AA = "AAA | BBB | CCC". Split ("\\|"); in this way, the correct result can be obtained.
For (INT I = 0; I <AA. length; I ++ ){
System. Out. println ("--" + AA [I]);
}
Running a string separated by vertical bars will throw a java. util. RegEx. patternsyntaxexception, as is the case with the plus sign +.
String [] AA = "AAA * BBB * CCC". Split ("*");
// String [] AA = "AAA | BBB | CCC". Split ("\ *");
For (INT I = 0; I <AA. length; I ++ ){
System. Out. println ("--" + AA [I]);
}
Obviously, + * is not a valid Regular Expression for pattern matching. You can escape it with "\ *" "\ +" to get the correct result.
"|" The separator string can be executed, but it is not the expected purpose. "\ |" escape to get the correct result.
If you want to use the "\" character in the string, you also need to escape it. the expression "AAAA \ BBBB" should be "AAAA \ BBBB" first. If it is to be separated, the correct result should be obtained:
String [] AA = "AAA \ BBB \ BCCC". Split ("\\\\");
From: http://hi.baidu.com/danghj/blog/item/7259c2b461bebc708bd4b21e.html