63 lines
1.0 KiB
Go
63 lines
1.0 KiB
Go
package gstr
|
|
|
|
import (
|
|
"golang.org/x/text/cases"
|
|
"golang.org/x/text/language"
|
|
"strings"
|
|
)
|
|
|
|
func Split(str, delimiter string) []string {
|
|
return strings.Split(str, delimiter)
|
|
}
|
|
|
|
func Replace(origin, search, replace string, count ...int) string {
|
|
n := -1
|
|
if len(count) > 0 {
|
|
n = count[0]
|
|
}
|
|
return strings.Replace(origin, search, replace, n)
|
|
}
|
|
|
|
func Equal(a, b string) bool {
|
|
return strings.EqualFold(a, b)
|
|
}
|
|
|
|
func Contains(str, substr string) bool {
|
|
return strings.Contains(str, substr)
|
|
}
|
|
|
|
func SubStr(str string, start int, length ...int) (substr string) {
|
|
lth := len(str)
|
|
|
|
// Simple border checks.
|
|
if start < 0 {
|
|
start = 0
|
|
}
|
|
if start >= lth {
|
|
start = lth
|
|
}
|
|
end := lth
|
|
if len(length) > 0 {
|
|
end = start + length[0]
|
|
if end < start {
|
|
end = lth
|
|
}
|
|
}
|
|
if end > lth {
|
|
end = lth
|
|
}
|
|
return str[start:end]
|
|
}
|
|
|
|
func Join(array []string, sep string) string {
|
|
return strings.Join(array, sep)
|
|
}
|
|
|
|
func UcWords(str string) string {
|
|
return cases.Title(language.Und).String(str)
|
|
}
|
|
|
|
func ToUpper(s string) string {
|
|
return strings.ToUpper(s)
|
|
}
|