string.join and string.split
void main (){ var x="gutentag"; var x2=x.split("t"); foreach (var s in x2) print ("%s ",s); print("%i\n",x2.length); print("%s\n",string.joinv(".",x2)); print("%s\n",string.join(".",x2)); }
produces
gu en ag 3 gu.en.ag [Invalid UTF-8] \xe07\xd7\x08\xf07\xd7\x08@(\xd7\x08
Why the last line says invalid UTF8 blah blah blah? It's junk, it's reading raw memory. Why? It probably has something to do with string.join() accepting (...) as a parameter while string.joinv() accepts an array of values.
Vala's string.split, string.join, and string.joinv come from the glib library's g_strsplit, g_strjoin, and g_strjoinv functions.
You can look up the vala VAPI interface to them here:
You can see the glib C description of them here: