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