mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
string: fix a bug with split()
This commit is contained in:
parent
a4882f1955
commit
e0b45e33ea
@ -238,8 +238,6 @@ pub fn (s string) split(delim string) []string {
|
||||
}
|
||||
if delim.len == 1 {
|
||||
return s.split_single(delim[0])
|
||||
// println('split 1 only')
|
||||
// os.exit()
|
||||
}
|
||||
mut i := 0
|
||||
mut start := 0// - 1
|
||||
@ -283,15 +281,15 @@ pub fn (s string) split_single(delim byte) []string {
|
||||
mut i := 0
|
||||
mut start := 0
|
||||
for i < s.len {
|
||||
a := s[i] == delim
|
||||
b := i == s.len - 1
|
||||
if a || b {
|
||||
if i == s.len - 1 {
|
||||
is_delim := s[i] == delim
|
||||
last := i == s.len - 1
|
||||
if is_delim || last {
|
||||
if !is_delim && i == s.len - 1 {
|
||||
i++
|
||||
}
|
||||
val := s.substr(start, i)
|
||||
if val.len > 0 {
|
||||
res << val.trim_space()
|
||||
res << val
|
||||
}
|
||||
start = i + 1
|
||||
}
|
||||
|
@ -106,6 +106,13 @@ fn test_split() {
|
||||
assert vals[0]== '4627a862c3dec29fb3182a06b8965e0025759e18'
|
||||
assert vals[1]=='1530207969'
|
||||
assert vals[2]== 'blue'
|
||||
// /////////
|
||||
s = 'lalala'
|
||||
vals = s.split('a')
|
||||
assert vals.len == 3
|
||||
assert vals[0] == 'l'
|
||||
assert vals[1] == 'l'
|
||||
assert vals[2] == 'l'
|
||||
}
|
||||
|
||||
fn test_trim_space() {
|
||||
|
Loading…
Reference in New Issue
Block a user