mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
builtin: fix split_nth() and rsplit_nth() on an empty delimeter (#19005)
This commit is contained in:
parent
e78e468d5f
commit
b622dca915
@ -865,7 +865,7 @@ pub fn (s string) split_nth(delim string, nth int) []string {
|
||||
i = 1
|
||||
for ch in s {
|
||||
if nth > 0 && i >= nth {
|
||||
res << s[i..]
|
||||
res << s[i - 1..]
|
||||
break
|
||||
}
|
||||
res << ch.ascii_str()
|
||||
@ -938,7 +938,7 @@ pub fn (s string) rsplit_nth(delim string, nth int) []string {
|
||||
0 {
|
||||
for i >= 0 {
|
||||
if nth > 0 && res.len == nth - 1 {
|
||||
res << s[..i]
|
||||
res << s[..i + 1]
|
||||
break
|
||||
}
|
||||
res << s[i].ascii_str()
|
||||
|
@ -183,6 +183,15 @@ fn test_split_nth() {
|
||||
assert e.split_nth(',,', 3).len == 3
|
||||
assert e.split_nth(',', -1).len == 12
|
||||
assert e.split_nth(',', 3).len == 3
|
||||
f := '1:2:3'
|
||||
assert f.split_nth(':', 2) == ['1', '2:3']
|
||||
assert f.rsplit_nth(':', 2) == ['3', '1:2']
|
||||
g := '123'
|
||||
assert g.split_nth('', 2) == ['1', '23']
|
||||
assert g.rsplit_nth('', 2) == ['3', '12']
|
||||
h := ''
|
||||
assert h.split_nth('', 2) == []
|
||||
assert h.rsplit_nth('', 2) == []
|
||||
}
|
||||
|
||||
fn test_rsplit_nth() {
|
||||
|
Loading…
Reference in New Issue
Block a user