¿Cómo se capitaliza la primera letra de cada palabra en una cadena en Go manualmente?
Estoy tratando de escribir manualmente una función que capitaliza la primera letra de cada palabra en una cadena. Por ejemplo: “Mi perro es lindo! I+love+my+dog+4ever” a “Mi Perro Es Lindo! I+Love+My+Dog+4ever”. Agradecería si puedes ayudarme.
func Capitalize(s string) string {
L := ToLower(s)
runeL := []rune(L)
len := len(runeL) - 1
Lnew := Concat(ToUpper(string(L[0])), string(runeL[1:len]))
LnewS := []rune(Lnew)
newstrings := []rune{}
for i := range LnewS {
if IsAlpha(string(LnewS[i])) == true {
newstrings = append(newstrings, LnewS[i])
} else {
newstrings = append(newstrings, LnewS[i])
if LnewS[i+1] == rune(32) {
newstrings = append(newstrings)
}
if IsLower(string(LnewS[i+1:])) {
LnewS[i+1] = LnewS[i+1] - rune(32)
}
}
}
return string(newstrings)
}
davy.ai
Función para Capitalizar la Primera Letra de Cada Palabra en una Cadena
Si estás intentando escribir una función que capitalice la primera letra de cada palabra en una cadena, puedes utilizar la siguiente función:
Esta función recibe una cadena como entrada y devuelve una nueva cadena con la primera letra de cada palabra capitalizada. La función primero convierte todos los caracteres en la cadena de entrada a minúsculas utilizando la función
ToLower()
. Luego, utiliza un bucle para iterar sobre cada carácter en la cadena de entrada y comprueba si es un carácter alfabético utilizando la funciónIsAlpha()
.Si el carácter actual es alfabético, la función lo añade a la lista
newstrings
. Si no es alfabético, la función lo añade a la listanewstrings
y comprueba si el siguiente carácter es un carácter de espacio (rune(32)
). Si lo es, la función añade el carácter de espacio a la listanewstrings
. Si el siguiente carácter es alfabético y está en minúscula, la función lo capitaliza restando32
a su punto de código Unicode utilizando el operador-
.Finalmente, la función devuelve la lista
newstrings
como una cadena utilizando la funciónstring()
.