diff --git a/vlib/builtin/string.v b/vlib/builtin/string.v index c06496e4c3..c6381c75c5 100644 --- a/vlib/builtin/string.v +++ b/vlib/builtin/string.v @@ -310,8 +310,14 @@ fn (s string) add(a string) string { pub fn (s string) split(delim string) []string { // println('string split delim="$delim" s="$s"') mut res := []string + // if delim.len == 0 { + // res << s + // return res + // } if delim.len == 0 { - res << s + for ch in s { + res << ch.str() + } return res } if delim.len == 1 { diff --git a/vlib/builtin/string_test.v b/vlib/builtin/string_test.v index 27875907c6..24d395519e 100644 --- a/vlib/builtin/string_test.v +++ b/vlib/builtin/string_test.v @@ -113,6 +113,17 @@ fn test_split() { assert vals[0] == 'l' assert vals[1] == 'l' assert vals[2] == 'l' + // ///////// + s = 'awesome' + a := s.split('') + assert a.len == 7 + assert a[0] == 'a' + assert a[1] == 'w' + assert a[2] == 'e' + assert a[3] == 's' + assert a[4] == 'o' + assert a[5] == 'm' + assert a[6] == 'e' } fn test_trim_space() {