我目前刚开始一个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()
,我们将不胜感激
答案 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}/';