Hi Jonathan!

On 7/24/17 3:42 AM, Jonathan Bluett-Duncan wrote:
You're welcome Ivan!

I'm just proofreading the new webrev, and a few more things have occurred to me:

1. What happens if the comparators are given the elements {"1abc", "2abc", "10abc"} to compare? Would they sort the elements as {"1abc", "2abc", "10abc"} or as {"1abc", "10abc", "2abc"}?
What about the array {"x1yz", "x2yz", "x10yz"}?
I wonder if these two cases should be added to the test too and given as additional examples in the javadocs.

These arrays would be sorted in the way you expect: i.e. {"1abc", "2abc", "10abc"} and {"x1yz", "x2yz", "x10yz"}, respectively. I agree it is worthwhile to choose a good descriptive example for the javadoc, so it would make it clear for a reader what to expect from the routine.
Probably, something similar to what they have in MSDN:
https://msdn.microsoft.com/en-us/library/windows/desktop/bb759947(v=vs.85).aspx

2. The example arrays which you kindly added to the comparators' javadoc have no whitespace at the start but one space between the last element and the }, so I think there either should be no space at the end or an extra space at the start.

Okay, I'll make it consistent.

3. Very sorry, error on my part: on the javadoc lines which now say "then the corresponding numerical values are compared; otherwise", I suggested to add a "then" at the start; re-reading it though, I personally think it reads better without, but I would understand and not press it further if you disagree and think that the "then" is a useful addition.

Fixed, thanks!

I'll post the updated webrev later, once incorporate other suggestions.

With kind regards,
Ivan



Best regards,
Jonathan


On 24 Jul 2017 06:21, "Ivan Gerasimov" <ivan.gerasi...@oracle.com <mailto:ivan.gerasi...@oracle.com>> wrote:

    Thank you Jonathan for looking into that!

    I agree with all your suggestions.

    Here's the updated webrev with suggested modifications:
    WEBREV: http://cr.openjdk.java.net/~igerasim/8134512/02/webrev/
    <http://cr.openjdk.java.net/%7Eigerasim/8134512/02/webrev/>

    With kind regards,
    Ivan


    On 7/23/17 3:56 AM, Jonathan Bluett-Duncan wrote:
    Meant to reply to core-libs-dev as well; doing so now.

    Jonathan

    On 23 July 2017 at 11:50, Jonathan Bluett-Duncan
    <jbluettdun...@gmail.com <mailto:jbluettdun...@gmail.com>> wrote:

        Hi Ivan,

        I'm not a reviewer per se, but I thought I'd chime in.

        There's a few things with Comparator.java which I think could
        be improved:

         1. `comparingNumericallyLeadingZerosAhead()` is a confusing
            name for me, as the "ahead" has no meaning in my mind;
            IMO the name `comparingNumericallyLeadingZerosFirst()`
            better implies that "0001" < "001" < "01".
         2. It wasn't clear to me from the javadoc that the
            comparators compare strings like "abc9" and "abc10" as
            "abc9" < "abc10", so I think they should include more
            examples.
         3. There's a typo in the javadocs for both methods:
            "represets" --> "represents".
         4. Where the javadocs say "follows the procedure", I think
            it'd make more grammatical sense if they said "does the
            following".
         5. The lines which say "at the boundary of a subsequence,
            consisting of decimal digits, the" would flow better if
            they said "at the boundary of a subsequence *consisting
            solely of decimal digits*, then the". Note the removal of
            the comma between "subsequence" and "consisting".

        Hope this helps!

        Jonathan

        On 23 July 2017 at 05:36, Ivan Gerasimov
        <ivan.gerasi...@oracle.com
        <mailto:ivan.gerasi...@oracle.com>> wrote:

            Hello!

            This is a gentle reminder.

            The proposed comparator implementation would be
            particularly useful when one will need to compare version
            strings.
            Some popular file managers also use similar comparing
            algorithm, as the results often look more natural to the
            human eyes (e.g. File Explorer on Windows, Files on Ubuntu).

            Now, as Java 10 is been worked on, to sort the list of
            Java names correctly, this kind of comparator is needed:

            Look: a list { ... "Java 8", "Java 9", "Java 10" }
            definitely looks nicer than { "Java 1", "Java 10", "Java
            2", ... }  :-)

            Would you please help review the proposal?

            With kind regards,
            Ivan



            On 7/19/17 1:41 AM, Ivan Gerasimov wrote:

                Hello!

                It is a proposal to provide a String comparator,
                which will pay attention to the numbers embedded into
                the strings (should they present).

                This proposal was initially discussed back in 2014
                and seemed to bring some interest from the community:
                
http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-December/030343.html
                
<http://mail.openjdk.java.net/pipermail/core-libs-dev/2014-December/030343.html>


                In the latest webrev two methods are added to the
                public API:
                j.u.Comparator.comparingNumerically() and
                j.u.Comparator.comparingNumericallyLeadingZerosAhead().

                The regression test is extended to exercise this new
                comparator.

                BUGURL:
                https://bugs.openjdk.java.net/browse/JDK-8134512
                <https://bugs.openjdk.java.net/browse/JDK-8134512>
                WEBREV:
                http://cr.openjdk.java.net/~igerasim/8134512/01/webrev/
                <http://cr.openjdk.java.net/%7Eigerasim/8134512/01/webrev/>

                Comments, suggestions are very welcome!


-- With kind regards,
            Ivan Gerasimov




-- With kind regards,
    Ivan Gerasimov




--
With kind regards,
Ivan Gerasimov

Reply via email to