尝试使用LineSplitter 将String 拆分为行列表,然后使用StringBuffer 再次组合这些行:
import 'dart:convert' show utf8, LineSplitter;
void main() {
final val = [49, 46, 13, 104, 101, 108, 108, 111];
final lines = const LineSplitter().convert(utf8.decode(val));
print(lines); // [1., hello]
final message = lines
.fold<StringBuffer>(
StringBuffer(), (buffer, line) => buffer..writeln(line))
.toString();
print(message);
// 1.
// hello
}
这将确保您使用的是运行平台支持的行尾。
如果可行,可以缩短为:
import 'dart:convert' show utf8, LineSplitter;
void main() {
List<int> val = [49, 46, 13, 104, 101, 108, 108, 111];
final decoded = utf8.decode(val);
print(decoded);
final fixed = fixNewLines(decoded);
print(fixed);
}
String fixNewLines(String text) => const LineSplitter()
.convert(text)
.fold<StringBuffer>(StringBuffer(), (buffer, line) => buffer..writeln(line))
.toString();