A simple Java class that provides natural sorting for strings.
Step 1 Add the GitHub Maven repository to your build file
<repositories>
<repository>
<id>github</id>
<url>https://maven.pkg.github.com/jagobagascon</url>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
Step 2 Add the dependency
<dependency>
<groupId>com.github.jagobagascon</groupId>
<artifactId>Natural-Sorting-for-Java</artifactId>
<version>1.2.0</version>
</dependency>
Step 3 Use the provided comparators to sort your lists
// If < JDK 8 use: Collections.sort
public void sortNatural(List<String> myList) {
myList.sort(NaturalSort.naturalSortComparator);
}
public void sortNaturalIgnoreCase(List<String> myList) {
myList.sort(NaturalSort.naturalSortIgnoreCaseComparator);
}
The library recognizes non-ASCII decimal digits when comparing numbers (for example, Thai digits or full-width digits). Numbers consisting of mixed digit sets or languages are compared as a whole. See this discussion for more info.