如何在Dart中用重复字符初始化指定长度字符串?附Java代码等效实现
在Dart中用重复字符初始化指定长度字符串的方法
Dart提供了两种高效的无循环方案,不会产生大量临时垃圾对象:
字符串乘法运算符
*
这是Dart内置的语法糖,底层会直接分配足够内存构造目标字符串,性能优异:String repeatedStr = "0" * 3; // 输出 "000"String.repeat()方法(Dart 2.17+)
若使用较新版本的Dart,也可以调用字符串的repeat方法,效果与乘法完全一致:String repeatedStr = "0".repeat(3); // 输出 "000"
对应Java代码的Dart等效实现
你给出的Java代码,在Dart中可以直接用上述两种方式实现,完全规避循环:
方案1:使用字符串乘法
int precision = 2; // 取决于区域设置 String f = "0" * precision; // 得到 "00" String format = "0.$f"; // 得到 "0.00"
方案2:使用repeat方法(Dart 2.17+)
int precision = 2; String f = "0".repeat(precision); String format = "0.$f";
两种方案的底层实现都经过优化,不会像手动循环那样生成大量临时对象,完全满足你的性能要求。
内容的提问来源于stack exchange,提问作者Martin Braun
相关产品推荐
相关产品推荐

