X-Git-Url: http://nitlanguage.org diff --git a/lib/standard/string_search.nit b/lib/standard/string_search.nit index 47bdbc8..437341f 100644 --- a/lib/standard/string_search.nit +++ b/lib/standard/string_search.nit @@ -205,7 +205,6 @@ class BM_Pattern private fun compute_gs do - var x = _motif var m = _length var suff = suffixes var i = 0 @@ -371,16 +370,16 @@ redef class Text # 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 `=` # @@ -389,15 +388,21 @@ redef class Text 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