Files
aorm/utils/str.go
tangpanqing 0fb943efb4 update
2023-01-13 13:46:14 +08:00

57 lines
1.0 KiB
Go

package utils
import (
"unicode"
)
// CamelString 将某字符串转成驼峰写法
func CamelString(s string) string {
data := make([]byte, 0, len(s))
j := false
k := false
num := len(s) - 1
for i := 0; i <= num; i++ {
d := s[i]
if k == false && d >= 'A' && d <= 'Z' {
k = true
}
if d >= 'a' && d <= 'z' && (j || k == false) {
d = d - 32
j = false
k = true
}
if k && d == '_' && num > i && s[i+1] >= 'a' && s[i+1] <= 'z' {
j = true
continue
}
data = append(data, d)
}
return string(data[:])
}
// Cs 将某字符串转成驼峰写法
func Cs(s string) string {
return CamelString(s)
}
// UnderLine 将某字符串转成下划线写法
func UnderLine(s string) string {
var output []rune
for i, r := range s {
if i == 0 {
output = append(output, unicode.ToLower(r))
continue
}
if unicode.IsUpper(r) {
output = append(output, '_')
}
output = append(output, unicode.ToLower(r))
}
return string(output)
}
// Ul 将某字符串转成下划线写法
func Ul(s string) string {
return UnderLine(s)
}