algorithms · go · leetcode · leetcode-solution · datastructuresandalogrithm
Cómo poner en mayúscula la primera letra de cada palabra con Go
¡Hola! Entusiastas de Golang. Espero que estén poniendo esfuerzo en el camino de aprender Golang. Esta semana seguimos mejorando el aprendizaje usando los paquetes internos de Go. Vamos a usar el string package.
Planteamiento del problema
Escribir una función que reciba un string como input y devuelva el string con la primera letra de cada palabra en mayúscula. Las palabras están separadas por espacios.
Descomponiendo el planteamiento: tenemos un input, un string de palabras separadas por espacios. Necesitamos procesar cada palabra para poner su primera letra en mayúscula. Finalmente, nuestro output será el mismo string, pero procesado.
Ahora toca definir el algoritmo para procesar el string y obtener el output solicitado.
Algoritmo para resolverlo
Primero, necesitamos separar el string completo en palabras. Aquí es donde el string package viene al rescate: sin él, tendríamos que buscar cada espacio en el string y separar desde ahí. Mejor elegir la herramienta correcta.
words := strings.Fields(s)
Usando el paquete strings y su método Fields, separamos nuestro string en un slice de palabras separadas por espacios. Fácil, ¿verdad? No hay que olvidar importar el paquete strings.
Ahora, usando un for range loop, vamos a iterar sobre nuestro slice de palabras, obteniendo tanto el índice como la palabra en sí.
for i, word := range words {}
Para cada string, tomamos la primera letra y la reemplazamos por el mismo carácter en mayúscula. Para esto, vamos a usar un paquete externo llamado cases en combinación con el paquete language.
Esta línea le indica a Go que la variable word es un string al que hay que aplicarle título (poner en mayúscula su primera letra) en inglés. El resultado se reasigna luego a la palabra en el índice actual del slice words.
words[i] = cases.Title(language.English).String(word)
Finalmente, una vez que todo el slice fue procesado, se devuelve como un único string. Se usa el paquete strings de nuevo para unir los elementos del slice con espacios en blanco entre ellos.
return strings.Join(words, " ")
¡Y ahí está! Se logró poner en mayúscula la primera letra de cada palabra del string usando las herramientas correctas.
Reflexiones finales
Como se puede ver, aprovechar los paquetes integrados y externos de Go lleva a un código más limpio y mantenible. En lugar de implementar manipulación de strings compleja desde cero, se puede confiar en librerías bien probadas que resuelven problemas comunes de forma eficiente.
Con solo unas pocas líneas, Go permite escribir soluciones elegantes que son a la vez legibles y performantes. Este enfoque no solo ahorra tiempo de desarrollo, sino que también reduce el potencial de bugs.
No hay que olvidar declarar los módulos para usar los paquetes cases y language, ya que no son paquetes integrados. Como siempre, se puede encontrar el código completo en mi repo de GitHub: https://github.com/RubenOAlvarado/algorithms
¡Sigan aprendiendo, nos vemos en la próxima!