對于像“AA_BB_CC”這樣的字符串,我想把它變成“AaBbCc”。我以為我可以這樣做:func CapsToCamel() string { var buf bytes.Buffer s := "AA_BB_CC" toUpper := true for i :=0; i<len(s); i++ { if toUpper { buf.WriteString(strings.ToUpper(s[i])) // error: s[i] is of byte. ...}我停在那里,雖然我可以將每個s[i]視為 ASCII 字符,然后將其值與aand進行比較z,但我認為應該有一個 Go 方法來做到這一點。
1 回答

繁星淼淼
TA貢獻1775條經驗 獲得超11個贊
這是一個更清潔的工作解決方案,僅使用strings包而不必依賴使用bytes.Buffer.
func CapsToCamel(s string) string {
newstr := ""
str := []byte(strings.Join(strings.Split(s, "_"), ""))
for i := 0; i < len(str); i += 2 {
newstr += string(str[i])
newstr += strings.ToLower(string(str[i]))
}
return newstr
}
操場上也有一個簡單的例子:https: //play.golang.org/p/1YIeTlr8a6D
- 1 回答
- 0 關注
- 151 瀏覽
添加回答
舉報
0/150
提交
取消