builtin: add string.split_by_space() (#23651)

This commit is contained in:
gechandesu 2025-02-04 12:12:42 +03:00 committed by GitHub
parent 99a587af95
commit 4f85b35bb9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 19 additions and 0 deletions

View File

@ -1108,6 +1108,18 @@ pub fn (s string) split_into_lines() []string {
return res
}
// split_by_space splits the string by whitespace (any of ` `, `\n`, `\t`, `\v`, `\f`, `\r`).
// Repeated, trailing or leading whitespaces will be omitted.
pub fn (s string) split_by_space() []string {
mut res := []string{}
for word in s.split_any(' \n\t\v\f\r') {
if word != '' {
res << word
}
}
return res
}
// substr returns the string between index positions `start` and `end`.
// Example: assert 'ABCD'.substr(1,3) == 'BC'
@[direct_array_access]

View File

@ -442,6 +442,13 @@ fn test_rsplit_once() ? {
assert ext3 == ''
}
fn test_split_by_space() {
assert 'a b c'.split_by_space() == ['a', 'b', 'c']
assert ' a\t\tb\tc'.split_by_space() == ['a', 'b', 'c']
assert 'a b c \n\r'.split_by_space() == ['a', 'b', 'c']
assert '\ta b \t \tc \r\n'.split_by_space() == ['a', 'b', 'c']
}
fn test_is_bin() {
assert ''.is_bin() == false
assert '0b1'.is_bin() == true