Dart StringBuffer
last modified January 28, 2024
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
Source
Dart StringBuffer - language reference
In this article we have covered the StringBuffer class in Dart.
Author
List all Dart tutorials.