How to convert a string to title case in Go

1 Answer

0 votes
package main

import (
    "fmt"
    "strings"
    "unicode"
)

// Function to convert a string to title case
func ToTitleCase(s string) string {
    words := strings.Fields(s) // Split string into words
    var titleCasedWords []string

    for _, word := range words {
        if len(word) > 0 {
            runes := []rune(word)
            runes[0] = unicode.ToUpper(runes[0]) // Convert first letter to uppercase
            for i := 1; i < len(runes); i++ {
                runes[i] = unicode.ToLower(runes[i]) // Convert remaining letters to lowercase
            }
            titleCasedWords = append(titleCasedWords, string(runes))
        }
    }

    return strings.Join(titleCasedWords, " ")
}

func main() {
    str := "In the beginning there was nothing, which exploded."
    
    fmt.Println(ToTitleCase(str))
}



/*
run:

In The Beginning There Was Nothing, Which Exploded.

*/

 



answered Apr 15, 2025 by avibootz
...