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 - 等号操作符。继承