Teniendo como entrada una serie de palabras en formato camelcase , donde  todas las letras de la primer palabra serán minúsculas, y cada una de las siguientes palabras la primer letra será mayúscula  y el resto minúsculas, determinaremos el número de palabras en la cadena proporcionada; para este ejercicio usaré la cadena holaMundo pero puedes probar el ejercicio con cualquier cadena que desee:

package main

import "fmt"

func camelcase(s string) int32 {
	var counter int32 = 0

	for _, r := range s {
		ascii := int(r)
		if ascii >= 65 && ascii <= 90 {
			counter = counter + 1
		}
	}
	return counter + 1
}

func main() {
	result := camelcase("holaMundo")
	fmt.Println(result)

}

En este ejercicio se imprimirá el numero 2 puesto que holaMundo se compone de dos palabras hola y Mundo, intentalo con otra cadena, si cuentas con otra manera de resolver el problema puedes compartirlo.

Jesus Flores

Ingeniero de Software y Agile Coach

Un comentario en "CamelCase"
  1. Aquí tenemos otra solución enviada por Guillermo Galván:
    package main

    import (
    “fmt”
    “unicode”
    )

    func camelCase(text string) (int, []string){
    count := 0
    idxStart := 0
    listWords := make([]string, 0)
    idxLastWord := len(text) – 1
    for idx, l := range text {
    if unicode.IsUpper(l){
    listWords = append(listWords, text[idxStart:idx])
    idxStart = idx
    count = count + 1
    }
    if idxLastWord == idx {
    listWords = append(listWords, text[idxStart:])
    count = count + 1
    }
    }
    return count, listWords
    }

    func main() {
    test := “holaMundoCruel”
    num, words := camelCase(test)
    fmt.Println(test)
    fmt.Println(num)
    fmt.Println(words)
    }

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *