¿Cómo hacer la clasificación en Java, si en un solo nombre de la variable y el número dos están presentes

Vatsal Rahul:

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?

jspcal:

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())

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=211987&siteId=1
Recomendado
Clasificación