Flutter中的StringBuffer不能按预期工作

时间:2018-07-30 03:02:33

标签: dart flutter stringbuffer

我目前刚开始一个Flutter项目,并且在玩StringBuffer类时感到非常沮丧,我正在使用下面的代码来格式化该URL并将其应用于我的类;

Connector._baseUri = baseUri;
if (Connector._baseUri.endsWith("/"))
  Connector._baseUri = Connector._baseUri.substring(0, Connector._baseUri.lastIndexOf('/'));
Connector._baseUri = new StringBuffer([Connector._baseUri, "/"]).toString();

然而,baseUri的初始值为http://locahost/test////,但是_baseUri的最终值却被定为[http://localhost/test, /],我可能会期望一个简单的{{1} },也尝试过http://localhost/test/.write(),我们将不胜感激

1 个答案:

答案 0 :(得分:2)

StringBuffer在构造函数中具有一个可选参数,该参数将获取任何对象并对其调用toString()。上面代码的结果只是List上的toString()。如果要向缓冲区写入Iterable,则要使用StringBuffer.writeAll,它将对值进行迭代并将每个字符串添加到缓冲区。

final buffer = new StringBuffer();
buffer.writeAll([Connector._baseUri, "/"]);
return buffer.toString()

尽管只有两个值,您也可以只使用string interpolation

return '${Connector._baseUri}/';