feat: 增加部分字符串转换函数

This commit is contained in:
kercylan98 2023-07-18 09:33:54 +08:00
parent ab0a7cbbbc
commit 28c6097044
1 changed files with 151 additions and 3 deletions

View File

@ -19,11 +19,11 @@ var (
// FirstUpper 首字母大写
func FirstUpper(str string) string {
var upperStr string
vv := []rune(str) // 后文有介绍
vv := []rune(str)
for i := 0; i < len(vv); i++ {
if i == 0 {
if vv[i] >= 97 && vv[i] <= 122 { // 后文有介绍
vv[i] -= 32 // string的码表相差32位
if vv[i] >= 97 && vv[i] <= 122 {
vv[i] -= 32
upperStr += string(vv[i])
} else {
return str
@ -34,3 +34,151 @@ func FirstUpper(str string) string {
}
return upperStr
}
// FirstLower 首字母小写
func FirstLower(str string) string {
var lowerStr string
vv := []rune(str)
for i := 0; i < len(vv); i++ {
if i == 0 {
if vv[i] >= 65 && vv[i] <= 90 {
vv[i] += 32
lowerStr += string(vv[i])
} else {
return str
}
} else {
lowerStr += string(vv[i])
}
}
return lowerStr
}
// FirstUpperBytes 首字母大写
func FirstUpperBytes(str []byte) []byte {
var upperStr []byte
vv := []rune(string(str))
for i := 0; i < len(vv); i++ {
if i == 0 {
if vv[i] >= 97 && vv[i] <= 122 {
vv[i] -= 32
upperStr = append(upperStr, string(vv[i])...)
} else {
return str
}
} else {
upperStr = append(upperStr, string(vv[i])...)
}
}
return upperStr
}
// FirstLowerBytes 首字母小写
func FirstLowerBytes(str []byte) []byte {
var lowerStr []byte
vv := []rune(string(str))
for i := 0; i < len(vv); i++ {
if i == 0 {
if vv[i] >= 65 && vv[i] <= 90 {
vv[i] += 32
lowerStr = append(lowerStr, string(vv[i])...)
} else {
return str
}
} else {
lowerStr = append(lowerStr, string(vv[i])...)
}
}
return lowerStr
}
// IsEmpty 判断字符串是否为空
func IsEmpty(str string) bool {
return len(str) == 0
}
// IsEmptyBytes 判断字符串是否为空
func IsEmptyBytes(str []byte) bool {
return len(str) == 0
}
// IsNotEmpty 判断字符串是否不为空
func IsNotEmpty(str string) bool {
return !IsEmpty(str)
}
// IsNotEmptyBytes 判断字符串是否不为空
func IsNotEmptyBytes(str []byte) bool {
return !IsEmptyBytes(str)
}
// SnakeString 蛇形字符串
func SnakeString(str string) string {
var snakeStr string
vv := []rune(str)
for i := 0; i < len(vv); i++ {
if vv[i] >= 65 && vv[i] <= 90 {
vv[i] += 32
snakeStr += "_" + string(vv[i])
} else {
snakeStr += string(vv[i])
}
}
return snakeStr
}
// SnakeStringBytes 蛇形字符串
func SnakeStringBytes(str []byte) []byte {
var snakeStr []byte
vv := []rune(string(str))
for i := 0; i < len(vv); i++ {
if vv[i] >= 65 && vv[i] <= 90 {
vv[i] += 32
snakeStr = append(snakeStr, '_')
snakeStr = append(snakeStr, string(vv[i])...)
} else {
snakeStr = append(snakeStr, string(vv[i])...)
}
}
return snakeStr
}
// CamelString 驼峰字符串
func CamelString(str string) string {
var camelStr string
vv := []rune(str)
for i := 0; i < len(vv); i++ {
if vv[i] == '_' {
i++
if vv[i] >= 97 && vv[i] <= 122 {
vv[i] -= 32
camelStr += string(vv[i])
} else {
return str
}
} else {
camelStr += string(vv[i])
}
}
return camelStr
}
// CamelStringBytes 驼峰字符串
func CamelStringBytes(str []byte) []byte {
var camelStr []byte
vv := []rune(string(str))
for i := 0; i < len(vv); i++ {
if vv[i] == '_' {
i++
if vv[i] >= 97 && vv[i] <= 122 {
vv[i] -= 32
camelStr = append(camelStr, string(vv[i])...)
} else {
return str
}
} else {
camelStr = append(camelStr, string(vv[i])...)
}
}
return camelStr
}