这是这个问题的后续行动.
问题在于下面的第二行.
"".split("x"); //returns {""} // ok
"x".split("x"); //returns {} but shouldn't it return {""} because it's the string before "x" ?
"xa".split("x"); //returns {"", "a"} // see?, here "" is the first string returned
"ax".split("x"); //returns {"a"}
Run Code Online (Sandbox Code Playgroud)
不,因为根据相关的javadoc "尾随空字符串将被丢弃".
具体根据java.util.regex.Pattern 源,其String.split(..)使用,
"".split("x"); // returns {""} - valid - when no match is found, return the original string
"x".split("x"); // returns {} - valid - trailing empty strings are removed from the resultant array {"", ""}
"xa".split("x"); // returns {"", "a"} - valid - only trailing empty strings are removed
"ax".split("x"); // returns {"a"} - valid - trailing empty strings are removed from the resultant array {"a", ""}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1552 次 |
| 最近记录: |