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
|
i = 1
|
||||||
for ch in s {
|
for ch in s {
|
||||||
if nth > 0 && i >= nth {
|
if nth > 0 && i >= nth {
|
||||||
res << s[i..]
|
res << s[i - 1..]
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
res << ch.ascii_str()
|
res << ch.ascii_str()
|
||||||
@ -938,7 +938,7 @@ pub fn (s string) rsplit_nth(delim string, nth int) []string {
|
|||||||
0 {
|
0 {
|
||||||
for i >= 0 {
|
for i >= 0 {
|
||||||
if nth > 0 && res.len == nth - 1 {
|
if nth > 0 && res.len == nth - 1 {
|
||||||
res << s[..i]
|
res << s[..i + 1]
|
||||||
break
|
break
|
||||||
}
|
}
|
||||||
res << s[i].ascii_str()
|
res << s[i].ascii_str()
|
||||||
|
@ -183,6 +183,15 @@ fn test_split_nth() {
|
|||||||
assert e.split_nth(',,', 3).len == 3
|
assert e.split_nth(',,', 3).len == 3
|
||||||
assert e.split_nth(',', -1).len == 12
|
assert e.split_nth(',', -1).len == 12
|
||||||
assert e.split_nth(',', 3).len == 3
|
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() {
|
fn test_rsplit_nth() {
|
||||||
|
Loading…
Reference in New Issue
Block a user