代码拉取完成,页面将自动刷新
同步操作将从 aesoper/utils 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
/**
* @Author: aesoper
* @Description:
* @File: string
* @Version: 1.0.0
* @Date: 2020/7/2 13:02
*/
package utils
import (
"strconv"
"strings"
)
func StringToFloat64(s string) float64 {
r, e := strconv.ParseFloat(s, 64)
if e != nil {
return 0
}
return r
}
func StrToFloat(value string) float64 {
float, err := strconv.ParseFloat(value, 64)
if err != nil {
return 0
}
return float
}
// 先尝试转浮点,然后再转整型
func StrToFInt(value string) int {
float := StrToFloat(value)
return int(float)
}
func StrToFInt64(value string) int64 {
float := StrToFloat(value)
return int64(float)
}
func StrToInt(value string) int {
number, err := strconv.Atoi(value)
if err == nil {
return number
}
return 0
}
// 取得整型值所表达的布尔类型
// 不同于golang提供的ParseBool
func StrToIntBool(value string) bool {
// "" => false
if len(value) <= 0 {
return false
}
i := StrToFInt(value) // 先尝试尽量取得这个字符串表示的整型值
if i <= 0 {
return false
}
return true
}
// 如果是小写字母, 则变换为大写字母
func StrFirstToUpper(str string) string {
var upperStr string
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位
upperStr += string(vv[i])
} else {
return str
}
} else {
upperStr += string(vv[i])
}
}
return upperStr
}
// 如果是大写字母, 则变换为小写字母
func StrFirstToLower(str string) string {
var upperStr string
vv := []rune(str) // 后文有介绍
for i := 0; i < len(vv); i++ {
if i == 0 {
if vv[i] >= 97 && vv[i] <= 122 {
return str
} else {
vv[i] += 32 // string的码表相差32位
upperStr += string(vv[i])
}
} else {
upperStr += string(vv[i])
}
}
return upperStr
}
// 匈牙利命名法, 转换小写下划线, XxYy to xx_yy , XxYY to xx_y_y
func SnakeCasedName(s string) string {
data := make([]byte, 0, len(s)*2)
j := false
num := len(s)
for i := 0; i < num; i++ {
d := s[i]
if i > 0 && d >= 'A' && d <= 'Z' && j {
data = append(data, '_')
}
if d != '_' {
j = true
}
data = append(data, d)
}
return strings.ToLower(string(data[:]))
}
// 转换为大驼峰写法, xx_yy to XxYy
func SameCamelCaseName(s string) string {
data := make([]byte, 0, len(s))
flag, num := true, len(s)-1
for i := 0; i <= num; i++ {
d := s[i]
if d == '_' {
flag = true
continue
} else if flag {
if d >= 'a' && d <= 'z' {
d = d - 32
}
flag = false
}
data = append(data, d)
}
return string(data[:])
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。