Files
public/tools/str.go
2020-12-29 11:59:27 +08:00

98 lines
1.8 KiB
Go

package tools
import (
"strconv"
"strings"
"github.com/axgle/mahonia"
)
// FormatInt int数组转字符串
func FormatInt(list []int, seg string) string {
s := make([]string, len(list))
for i := range list {
s[i] = strconv.Itoa(list[i])
}
return strings.Join(s, seg)
}
//字符串去除特殊字符
//func DealStr(str, replace string) string {
// var s string = strings.TrimSpace(str) //去除尾部空格
// strings.Replace(s, replace, "", -1)
// return s
//}
// Substr 截取字符串 不包括str
func Substr(str string, start, length int) string {
rs := []rune(str)
rl := len(rs)
end := 0
if start < 0 {
start = rl - 1 + start
}
end = start + length
if start > end {
start, end = end, start
}
if start < 0 {
start = 0
}
if start > rl {
start = rl
}
if end < 0 {
end = 0
}
if end > rl {
end = rl
}
return string(rs[start:end])
}
// MinimumString 查找字符串最小值
func MinimumString(rest []string) string {
minimum := rest[0]
for _, v := range rest {
if v := v; v < minimum {
minimum = v
}
}
return minimum
}
// ConvertToString 字符集转换
func ConvertToString(src string, srcCode string, tagCode string) string {
srcCoder := mahonia.NewDecoder(srcCode)
srcResult := srcCoder.ConvertString(src)
tagCoder := mahonia.NewDecoder(tagCode)
_, cdata, _ := tagCoder.Translate([]byte(srcResult), true)
return string(cdata)
}
// ConvertString 系统转其他
func ConvertString(src string, tagCode string) string {
enc := mahonia.NewEncoder(tagCode)
return enc.ConvertString(src)
}
// GetGBK 获取gbk
func GetGBK(src string) string {
return string(ConvertString(src, "gbK"))
}
// Reverse 反转字符串
func Reverse(s string) string {
r := []rune(s)
for i, j := 0, len(r)-1; i < len(r)/2; i, j = i+1, j-1 {
r[i], r[j] = r[j], r[i]
}
return string(r)
}