On 1/20/15 8:17 AM, Paul Sandoz wrote:
Hi,

http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8069325-Pattern-splitAsStream-emptyInput/webrev/

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.

Reply via email to