Преобразовать строку в верблюжий регистр

Messages
1,679
Reaction score
288
Website
tehadm.ru
C-like:
package main

import (
    "fmt"
    "strings"
)

func main() {
    fmt.Println(ToCamelCase("the-stealth-warrior")) // theStealthWarrior
    fmt.Println(ToCamelCase("The_Stealth_Warrior"))  // theStealthWarrior
    fmt.Println(ToCamelCase("The_Stealth-Warrior"))  // theStealthWarrior
}

func ToCamelCase(s string) string {
    // Заменяем '-' и '_' на пробел, чтобы легко разбить строку на слова
    s = strings.ReplaceAll(s, "-", " ")
    s = strings.ReplaceAll(s, "_", " ")

    // Разбиваем строку на слова
    words := strings.Fields(s)

    // Создаем новый слайс для хранения слов в формате camelCase
    newWords := make([]string, len(words))

    // Перебираем слова и изменяем регистр первой буквы
    for i, word := range words {
        // Если это не первое слово, сделать первую букву заглавной
        if i > 0 {
            newWords[i] = strings.Title(word) // делает первую букву заглавной
        } else {
            newWords[i] = word // первое слово - с маленькой буквы
        }
    }

    // Объединяем слова в одну строку
    return strings.Join(newWords, "")
}
 
C-like:
import (
    "regexp"
    "strings"
)

func ToCamelCase(s string) string {
    words := regexp.MustCompile("-|_").Split(s, -1)

    for i, w := range words[1:] {
        words[i+1] = strings.Title(w)
    }

    return strings.Join(words, "")
}
 
C-like:
import (
    "strings"
)

func ToCamelCase(s string) string {
  if s == "" {return ""}
    result := strings.Title(strings.Replace(strings.Replace(s, "-", " ", -1), "_", " ", -1))
    result = s[:1] + result[1:]
    result = strings.Replace(result, " ", "", -1)
    return result
}
 
C-like:
import (
  "regexp"
  "strings"
)

func ToCamelCase(s string) string {
  return regexp.MustCompile("[-_](.)").ReplaceAllStringFunc(s, func(w string) string {
    return strings.ToUpper(w[1:])
  })
}
 
Back
Top