# Split `self` using `p` as separator.
#
# assert "hello world".split('o') == ["hell", " w", "rld"]
- fun split(p: Pattern): Array[SELFTYPE]
+ fun split(p: Pattern): Array[String]
do
var matches = p.split_in(self)
- var res = new Array[SELFTYPE].with_capacity(matches.length)
+ var res = new Array[String].with_capacity(matches.length)
for m in matches do res.add(m.to_s)
return res
end
# @deprecated alias for `split`
- fun split_with(p: Pattern): Array[SELFTYPE] do return self.split(p)
+ fun split_with(p: Pattern): Array[String] do return self.split(p)
# Split `self` on the first `=`
#
fun split_once_on(p: Pattern): Array[SELFTYPE]
do
var m = p.search_in(self, 0)
- if m == null then return [self]
- return new Array[SELFTYPE].with_items(substring(0, m.from), substring_from(m.after))
+ var res = new Array[SELFTYPE]
+ if m == null then
+ res.add self
+ else
+ res.add substring(0, m.from)
+ res.add substring_from(m.after)
+ end
+ return res
end
# Replace all occurences of a pattern with a string
#
# assert "hlelo".replace("le", "el") == "hello"
# assert "hello".replace('l', "") == "heo"
- fun replace(p: Pattern, string: SELFTYPE): SELFTYPE
+ fun replace(p: Pattern, string: SELFTYPE): String
do
return self.split_with(p).join(string)
end