Skip to content

Java implementation of the "natural sort" (also known as Alphanum sort) algorithm

License

Notifications You must be signed in to change notification settings

gpanther/java-nat-sort

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

java-nat-sort

Java implementation of the "natural sort" (also known as Alphanum sort) algorithm which gives a more "natural" ordering when presenting the sorted list of strings to humans.

For example, given the following strings:

a1.txt
a2.txt
a10.txt

A traditional sort algorithm would sort them like:

a1.txt
a10.txt
a2.txt

While this algorithm would give the initial ("natural") order.

Features:

  • Self-contained, no other dependencies
  • Compiled for Java 6
  • Relatively fast, does not allocate extra objects ("garbage free")
  • Has a case sensitive and a case insensitive option
  • Available under the Apache v2.0 License

Shortcoming / opportunity for improvement:

  • Does not play nice with Unicode, especially characters which are outside of the BMP
  • Does not handle fractions or grouping characters properly (ie. 100,000.50)
  • Only understands integer values up to 2^64-1

Get it from Maven Central:

<dependency>
    <groupId>net.grey-panther</groupId>
    <artifactId>natural-comparator</artifactId>
    <version>1.1</version>
</dependency>

About

Java implementation of the "natural sort" (also known as Alphanum sort) algorithm

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages