golanghelper/StringUtils.go

69 lines
1014 B
Go

package golanghelper
import "strings"
const (
EMPTY = ""
SPACE = " "
)
type StringUtils struct {
}
// IsEmpty 會檢查 str 是否為空值
func (s *StringUtils) IsEmpty(str string) bool {
return len(str) == 0
}
// LeftPad 將 padStr 以 size 做為長度,向左填滿 str
func (s *StringUtils) LeftPad(str string, size int, padStr string) string {
if s.IsEmpty(padStr) {
padStr = SPACE
}
padStrLen := len(padStr)
padCount := size - len(str)
if padCount <= 0 || padCount < padStrLen {
return str
}
if padCount == padStrLen {
return padStr + str
}
return strings.Repeat(padStr, padCount) + str
}
func (s *StringUtils) Substring(str string, start, end int) string {
if str == "" {
return str
}
runes := []rune(str)
if end < 0 {
end = len(runes) + end
}
if start < 0 {
start = len(runes) + start
}
if end > len(str) {
end = len(str)
}
if start > end {
return EMPTY
}
if start < 0 {
start = 0
}
if end < 0 {
end = 0
}
return string(runes[start:end])
}