// 转换为snake
package main
import (
"fmt"
"regexp"
"strings"
)
var matchAllCap = regexp.MustCompile("([a-z0-9])([A-Z])")
func ToSnakeCase(str string) string {
snake := matchAllCap.ReplaceAllString(str, "${1}_${2}")
fmt.Println(snake)
return strings.ToLower(snake)
}
func main() {
fmt.Println(ToSnakeCase("JapanCanadaAustraliaHelloWorld"))
}
// 转换为驼峰
package main
import (
"fmt"
"strings"
)
func ToCamelCase(str string) string {
temp := strings.Split(str, "-")
for i, r := range temp {
if i > 0 {
temp[i] = strings.Title(r)
}
}
return strings.Join(temp, "")
}
func main() {
str := "the-stealth-warrior"
fmt.Println(ToCamelCase(str))
}
// 转驼峰 优化版
package main
import (
"fmt"
"regexp"
"strings"
)
var re = regexp.MustCompile("(_|-)([a-zA-Z]+)")
func ToCamelCase(str string) string {
camel := re.ReplaceAllString(str, " $2")
camel = strings.Title(camel)
camel = strings.Replace(camel, " ", "", -1)
return camel
}
func main() {
str := "the_start_boy"
fmt.Println(ToCamelCase(str))
}