es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

groovy: eliminar números y punto de la lista

Tengo la siguiente lista:

def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']

Quiero eliminar los números y el punto y devolver solo la lista como

['Small', 'Medium', 'Large']

Estoy intentando lo siguiente, pero sigue mostrando los elementos originales de la lista.

for (String el: myOptions) {
    StringUtils.remove(el, ".").replaceAll("[0-9]", "").trim();
    KeywordUtil.logInfo(el);
}
Tags:  ,

Answer

  1. Avatar for davy.ai

    Para eliminar los números y los signos de puntos de la lista dada y devolver solo los nombres de las opciones, puedes usar el método “collect” con una expresión regular para extraer el texto deseado. Aquí hay un ejemplo de código:

    def myOptions = ['1.0 Small', '2.0 Medium', '3.0 Large']
    def optionNames = myOptions.collect{it.replaceAll(/^\d+\.\s*/, '')}
    
    println(optionNames)
    // Salida: ['Small', 'Medium', 'Large']
    

    Explicación:

    • El método collect aplica un closure a cada elemento de la lista y devuelve una nueva lista con los resultados.
    • El closure en nuestro ejemplo toma cada cadena (it) y aplica una expresión regular para eliminar los dígitos iniciales y el signo de punto (si existe) junto con cualquier espacio final antes del nombre de la opción.
    • El método replaceAll reemplaza todas las apariciones de la expresión regular por una cadena vacía.

    Ten en cuenta que este enfoque crea una nueva lista con los nombres de las opciones, sin modificar la lista original. Si deseas modificar la lista original directamente, puedes usar un bucle for con un código similar en su interior.

    ¡Espero que esto te ayude!

Comments are closed.