Dart StringBuffer
last modified August 24, 2023
In this article we show how to concatenate strings efficiently in Dart language using StringBuffer class.
A string is a sequence of UTF-16 code units. It is used to represent some text in a program.
StringBuffer is a class that is used to create new strings efficiently
by concatenation. It contains write
, writeAll
,
writeln
and clear
member functions for string
manipulation.
Dart StringBuffer simple example
The following is a simple Dart program which uses StringBuffer
;
void main() { var msg = StringBuffer('There are'); msg.write(' three '); msg.writeAll(['hawks', 'in', 'the sky'], " "); String output = msg.toString(); print(output); }
The program dynamically builds a new string and prints it to the console.
var msg = StringBuffer('There are');
We create a new instance of StringBuffer
. We add some initial text.
msg.write(' three ');
We insert another string with write
.
msg.writeAll(['hawks', 'in', 'the sky'], " ");
We insert multiple strings with writeAll
. The first parameter is a
list of strings, the second parameter is a separator character.
String output = msg.toString();
Finally, we turn the string buffer into a single string with
toString
.
$ dart main.dart There are three hawks in the sky
Dart StringBuffer writeln
The writeln
method writes a new string followed by a newline
character.
void main() { var msg = StringBuffer('blue sky\n'); msg.writeln('old owl'); msg.writeln('lonely wolf'); msg.writeln('strict regime'); print(msg.length); print(msg.toString()); }
The example creates a string consisting of several lines of text data. In
addition, we print the size of the text in characters using length
.
$ dart main.dart 43 blue sky old owl lonely wolf strict regime
Dart StringBuffer isEmpty
We can check if a string buffer is empty with isEmpty
. The buffer
can be deleted with clear
.
void main() { var msg = StringBuffer(); check(msg); msg.writeAll(['an', 'old', 'hawk', 'in', 'the', 'sky'], ' '); check(msg); print(msg.toString()); msg.clear(); check(msg); } void check(StringBuffer msg) { if (msg.isEmpty) { print('the buffer is empty'); } else { print('the buffer is not empty'); } }
In the program, we build a string with StringBuffer
and use the
isEmpty
method to check, if the buffer is empty.
$ dart main.dart the buffer is empty the buffer is not empty an old hawk in the sky the buffer is empty
In this article we have covered the StringBuffer class in Dart.
Author
List all Dart tutorials.