StringBuffer

用于高效地连接字符串的类。

允许使用 write*() 方法增量构建字符串。只有调用 toString 时,才会将这些字符串连接成单个字符串。

示例

final buffer = StringBuffer('DART');
print(buffer.length); // 4

要将对象的字符串表示(由 Object.toString 返回)添加到缓冲区,请使用 write。它也用于直接添加字符串。

buffer.write(' is open source');
print(buffer.length); // 19
print(buffer); // DART is open source

const int dartYear = 2011;
buffer
  ..write(' since ') // Writes a string.
  ..write(dartYear); // Writes an int.
print(buffer); // DART is open source since 2011
print(buffer.length); // 30

要在对象的字符串表示之后添加换行符,请使用 writeln。不带参数调用 writeln 会将单个换行符添加到缓冲区中。

buffer.writeln(); // Contains "DART is open source since 2011\n".
buffer.writeln('-' * (buffer.length - 1)); // 30 '-'s and a newline.
print(buffer.length); // 62

要向缓冲区写入多个对象,请使用 writeAll

const separator = '-';
buffer.writeAll(['Dart', 'is', 'fun!'], separator);
print(buffer.length); // 74
print(buffer);
// DART is open source since 2011
// ------------------------------
// Dart-is-fun!

要将 Unicode 代码点 charCode 的字符串表示添加到缓冲区,请使用 writeCharCode

buffer.writeCharCode(0x0A); // LF (line feed)
buffer.writeCharCode(0x44); // 'D'
buffer.writeCharCode(0x61); // 'a'
buffer.writeCharCode(0x72); // 'r'
buffer.writeCharCode(0x74); // 't'
print(buffer.length); // 79

要转换为单个字符串,请使用 toString

final text = buffer.toString();
print(text);
// DART is open source since 2011
// ------------------------------
// Dart-is-fun!
// Dart

要清除缓冲区,以便可以重用,请使用 clear

buffer.clear();
print(buffer.isEmpty); // true
print(buffer.length); // 0
实现类型

构造函数

StringBuffer([Object content = ""])
创建包含提供的 content 的字符串缓冲区。

属性

hashCode int
此对象的哈希码。
无设置器继承
isEmpty bool
返回缓冲区是否为空。这是一个常量时间操作。
无设置器
isNotEmpty bool
返回缓冲区是否不为空。这是一个常量时间操作。
无设置器
length int
返回迄今为止累积的内容的长度。这是一个常量时间操作。
无设置器
runtimeType Type
对象运行时类型的表示。
无设置器继承

方法

clear() → void
清除字符串缓冲区。
noSuchMethod(Invocation invocation) → dynamic
当访问不存在的方法或属性时被调用。
继承
toString() String
返回缓冲区内容的单行字符串。
覆盖
write(Object? object) → void
写入object的字符串表示。
覆盖
writeAll(Iterable objects, [String separator = ""]) → void
使用separator分隔写入objects的元素。
覆盖
writeCharCode(int charCode) → void
写入包含具有代码点charCode的字符的字符串。
覆盖
writeln([Object? obj = ""]) → void
写入object的字符串表示,后跟一个换行符。
覆盖

操作符

operator ==(Object other) bool
等号操作符。
继承