improve gstr.SplitAndTrim

This commit is contained in:
John
2019-10-22 13:57:21 +08:00
parent d4051df5b6
commit c0236d7dfa
2 changed files with 22 additions and 6 deletions

View File

@ -446,11 +446,11 @@ func Split(str, delimiter string) []string {
// and calls Trim to every element of this array. It ignores the elements
// which are empty after Trim.
func SplitAndTrim(str, delimiter string, characterMask ...string) []string {
array := strings.Split(str, delimiter)
for k, v := range array {
array := make([]string, 0)
for _, v := range strings.Split(str, delimiter) {
v = Trim(v, characterMask...)
if v != "" {
array[k] = v
array = append(array, v)
}
}
return array
@ -460,11 +460,11 @@ func SplitAndTrim(str, delimiter string, characterMask ...string) []string {
// and calls TrimSpace to every element of this array.
// Deprecated.
func SplitAndTrimSpace(str, delimiter string) []string {
array := strings.Split(str, delimiter)
for k, v := range array {
array := make([]string, 0)
for _, v := range strings.Split(str, delimiter) {
v = strings.TrimSpace(v)
if v != "" {
array[k] = v
array = append(array, v)
}
}
return array

View File

@ -176,6 +176,22 @@ func Test_ChunkSplit(t *testing.T) {
})
}
func Test_SplitAndTrim(t *testing.T) {
gtest.Case(t, func() {
s := `
010
020
`
a := gstr.SplitAndTrim(s, "\n", "0")
gtest.Assert(len(a), 2)
gtest.Assert(a[0], "1")
gtest.Assert(a[1], "2")
})
}
func Test_Fields(t *testing.T) {
gtest.Case(t, func() {
gtest.Assert(gstr.Fields("我爱 Go Frame"), []string{