Java implementation of Alpha-numeric comparator

Remi Forax forax at
Mon Dec 15 23:39:12 UTC 2014

Hi Ivan, hi Roger,

Roger, the API already exists it's the interface Comparator.

I agree with Roger that a comparator that use a CharSequence is better 
that the one that use a char array.

The thing that worry me is the Comparator<Character> taken as parameter, 
it means that
each time the method compare() is called on this comparator, the two 
arguments are boxed.

Minor comment, to be included, I think that these comparators should be 
and in my opinion the best way to do that is to use a lambda instead of 
a class.


On 12/15/2014 11:31 PM, roger riggs wrote:
> Hi Ivan,
> It does seem like a useful function, though I would have started with 
> the API,
> not the implementation.
> Can it apply to CharSequence not only String and maybe skip the
> separate char[] version, a char[] array can be wrapped to become a 
> CharSequence via CharBuffer.
> Or a via a new static method to define a CharSequence from a char array.
> $.02, Roger
> On 12/15/2014 5:53 AM, Ivan Gerasimov wrote:
>> Hello everyone!
>> In certain situations the preferred way of sorting strings is a 
>> combination of char-comparing sorting with numeric sorting, where 
>> applicable.
>> List of strings sorted this way often look more natural to the human 
>> eyes:
>> { "alpha",
>>   "java1",
>>   "java2",
>>   "java10",
>>   "zero" }
>> Here's presented a sample implementation of the comparator, which 
>> supports this way of sorting.
>> I placed it under src/sample directory.
>> MSDN provides the function StrCmpLogicalW(), which can be used for 
>> similar sort order.
>> The differences are:
>>  - case-sensitivity (StrCmpLogicalW is case-insensitive);
>>  - treating leading zeroes;
>>  - more accurate handling of strings with big numbers, which cannot 
>> be converted to int/long.
>> I guess this comparator may become particularly useful when we'll 
>> have 'java10' and update releases/build numbers > 99 in the lists :)
>> I want to ask the community about how useful this comparator may be 
>> to you?
>> Sincerely yours,
>> Ivan

More information about the core-libs-dev mailing list