对于像“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 关注
- 176 浏览
添加回答
举报
0/150
提交
取消
