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
等号运算符。
继承