Estoy haciendo una cosa de clasificación, así que estoy usando java arranque primavera y estoy usando arroyos clasificados por
código de clasificación es: -
projectResponse.setDetails(v.stream()
.sorted(Comparator.comparing(StateResponse::getState)
.thenComparing(Comparator.comparing(NameResponse::getName)))
.collect(Collectors.toList()));
Para ordenar primero por el estado y luego por su nombre.
Mi nombre tiene un valor algo así como: "Nombre-98", "Nombre-99", "nombre-100" así que cuando se está clasificando que validar correctamente y 99, pero cuando el 100 viene es el primer número se separa y después de clasificación es correcta desde 100101102 y esta situación va a venir de nuevo cuando el no cruzará 999 y luego la clasificación será procedente de 1000,1001 correctamente. ¿Cuál es la mejor solución posible para superarlo?
Es útil usar un comparador personalizado que ordena los números en orden numérico y, al mismo tiempo que clasifica el texto en orden alfabético. Esto se refiere a menudo como "tipo natural". He aquí una aplicación que hace eso: http://www.davekoelle.com/alphanum.html .
Para utilizarlo en su funcionamiento corriente:
thenComparing(NameResponse::getName, new AlphanumComparator())