31 lines
657 B
Go
31 lines
657 B
Go
package util
|
|
|
|
import (
|
|
"strings"
|
|
"unicode"
|
|
)
|
|
|
|
// TrimWhiteSpace removes all whitespace characters from the string
|
|
func TrimWhiteSpace(s string) string {
|
|
return strings.Map(func(r rune) rune {
|
|
if unicode.IsSpace(r) {
|
|
return -1
|
|
}
|
|
return r
|
|
}, s)
|
|
}
|
|
|
|
// FieldsAndTrimSpace splits string by the given separator function and trims space for each field
|
|
func FieldsAndTrimSpace(s string, fn func(rune) bool) []string {
|
|
fields := strings.FieldsFunc(s, fn)
|
|
result := make([]string, 0, len(fields))
|
|
for _, field := range fields {
|
|
trimmed := strings.TrimSpace(field)
|
|
if len(trimmed) > 0 {
|
|
result = append(result, trimmed)
|
|
}
|
|
}
|
|
return result
|
|
}
|
|
|