Análisis avanzado de rangos numéricos desde la cadena

Estoy usando Java para analizar las entradas introducidas por el usuario, que representan valores numéricos únicos o rangos. El usuario puede ingresar la siguiente cadena:

10-19

Y su intención es usar números enteros de10-19 ->10,11,12...19

El usuario también puede especificar una lista de números:

10,15,19

O una combinación de lo anterior:

10-19,25,33

¿Hay algún método conveniente, quizás basado en expresiones regulares, para realizar este análisis? O debo dividir la cadena usandoString.split(), luego iterar manualmente los signos especiales (',' y '-' en este caso)?

Respuestas a la pregunta(4)

Su respuesta a la pregunta