Comparación de cadenas de orden natural en Java: ¿está incorporada una? [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Ordenar en una cadena que puede contener un número 18 respuestas

Me gustaría algún tipo de función de comparación de cadenas que preserva el orden natural1. ¿Hay algo como esto integrado en Java? No puedo encontrar nada en elClase de cuerdas, y elClase comparadora Solo se conocen dos implementaciones.

Puedo rodar el mío (no es un problema muy difícil), pero preferiría no reinventar la rueda si no tengo que hacerlo.

En mi caso específico, tengo cadenas de versión de software que quiero ordenar. Así que quiero que "1.2.10.5" se considere mayor que "1.2.9.1".

1 Por orden de clasificación "natural", quiero decir que compara las cadenas de la misma forma en que un humano las compara, en oposición al ordenamiento "ascii-betical" que solo tiene sentido para los programadores. En otras palabras, "image9.jpg" es menor que "image10.jpg", y "album1set2page9photo1.jpg" es menor que "album1set2page10photo5.jpg", y "1.2.9.1" es menor que "1.2.10.5"

Respuestas a la pregunta(8)

Su respuesta a la pregunta