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]) }