Programmatically generating a String is best accomplished with a StringBuffer. A StringBuffer doesn't generate a new String object until toString()
is called.
var sb = new StringBuffer();
sb.write("Use a StringBuffer");
sb.writeAll(["for ", "efficient ", "string ", "creation "]);
sb.write("if you are ")
sb.write("building lots of strings");
// or you can use method cascades:
sb
..write("Use a StringBuffer")
..writeAll(["for ", "efficient ", "string ", "creation "])
..write("if you are ")
..write("building lots of strings");
var fullString = sb.toString();
print(fullString);
// Use a StringBufferfor efficient string creation if you are building lots of strings
sb.clear(); // all gone!