On 1/20/15 8:17 AM, Paul Sandoz wrote:
Hi,
http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8069325-Pattern-splitAsStream-e...
This patch fixes an edge case in Pattern.splitAsStream for matching against an empty input string, which deviated from the behaviour of Pattern.split. When there are no matches a stream containing the input string should be returned rather than an empty stream.
--
I have kept compatibility with Pattern.split(String ) but i noticed another an edge case.
What should the following return:
Pattern.compile("").split("")
[] or [""]?
There is a zero-width match at the beginning and an empty remaining segment both of which should be discarded, as such i would expect the result to be [] rather than as [""], as currently produced result.
It may depend on how the "trailing empty string" gets interpreted. Is it possible to interpret it as the empty string is the result of the "substring from the beginning 0-width match and the end of the input sequence", any thing after that is "trailing"? It would be clear if the spec explicitly said, the result of splitting an empty input is an empty string. I would assume someone, mostly the user of String.split(), will get hit by this "incompatible" change. -Sherman
If people agree that this is an issue i suggest we log a new one independent of fixing 8069325.
Thanks, Paul.