Procesamiento de Cadenas de Registro de Usuarios

GolangBeginner
Practicar Ahora

Introducción

En este desafío, los participantes tienen la tarea de implementar una función para dar formato a los nombres de usuario en el sistema de registro de una plataforma de redes sociales. El objetivo es garantizar que la entrada de datos sea consistente y limpia para mantener la integridad de la información y mejorar la experiencia del usuario. Específicamente, la función debe eliminar los espacios en blanco al principio y al final, poner en mayúscula la primera letra de cada segmento del nombre y gestionar nombres compuestos (nombres de pila, segundos nombres y apellidos).

Este es un Desafío (Challenge), que a diferencia de un Laboratorio Guiado, requiere que intentes completar la tarea de forma independiente en lugar de seguir pasos detallados. Los desafíos suelen tener una dificultad mayor. Si encuentras obstáculos, puedes consultar con Labby o revisar la solución propuesta. Los datos históricos muestran que este es un desafío de nivel principiante con una tasa de aprobación del 94%. Ha recibido una valoración positiva del 88% por parte de los estudiantes.

Procesamiento de Cadenas de Registro de Usuarios

En el sistema de registro de una red social, mantener una entrada de datos de usuario uniforme y depurada es fundamental para la integridad de la base de datos y la calidad del servicio.

Tareas

  • Crear una función llamada formatUserName que reciba un nombre completo como entrada.
  • Eliminar los espacios en blanco iniciales y finales de la cadena recibida.
  • Convertir a mayúscula la primera letra de cada segmento del nombre.
  • Devolver el nombre completo con el formato corregido.

Requisitos

  • Desarrollar la solución en el archivo ~/project/registration.go.
  • Utilizar las funciones de manipulación de cadenas de Go aprendidas en prácticas anteriores.
  • La función debe ser capaz de procesar múltiples segmentos (nombre, segundo nombre, apellidos).
  • Emplear strings.TrimSpace() para eliminar espacios innecesarios.
  • Asegurarse de que la función sea robusta frente a diversos formatos de entrada.

Ejemplos

Para probar la función, actualiza la función main() con los siguientes casos de prueba:

func main() {
    fmt.Println(formatUserName("  john doe  "))        // Salida: John Doe
    fmt.Println(formatUserName("  alice bob smith  ")) // Salida: Alice Bob Smith
    fmt.Println(formatUserName("JANE DOE"))            // Salida: Jane Doe
}

Ejecuta el programa y verifica que el resultado coincida con lo esperado.

go run registration.go
John Doe
Alice Bob Smith
Jane Doe

Pistas

  1. strings.TrimSpace() elimina los espacios en blanco al inicio y al final del nombre ingresado.
  2. strings.Fields() divide el nombre en segmentos, gestionando automáticamente los espacios intermedios múltiples.
  3. strings.ToLower() asegura una capitalización uniforme antes de aplicar Title().
  4. strings.Join() reconstruye el nombre formateado insertando un solo espacio entre cada segmento.
✨ Revisar Solución y Practicar

Resumen

En conclusión, este desafío requería la implementación de una función para normalizar nombres de usuario en un sistema de registro. La función procesa la entrada eliminando espacios innecesarios y aplicando un formato de mayúsculas adecuado a cada parte del nombre, independientemente de cuántos apellidos o nombres intermedios existan. El objetivo final es asegurar la consistencia de los datos y mejorar la presentación de la información en la plataforma.