我目前刚刚开始一个 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,/]
我可能期望一个简单的 http://localhost/test/
,也尝试过 .write()
和 .writeAll()
,任何帮助将不胜感激
最佳答案
StringBuffer
构造函数中有一个可选参数,它将接受任何对象并对其调用 toString()
。上面代码的结果只是列表上的 toString() 。如果要将 Iterable 写入缓冲区,则需要使用 StringBuffer.writeAll
这将迭代这些值并将每个字符串添加到缓冲区。
final buffer = new StringBuffer();
buffer.writeAll([Connector._baseUri, "/"]);
return buffer.toString()
尽管只有两个值,您也可以只使用 string interpolation
相反。
return '${Connector._baseUri}/';
关于dart - flutter 中的 StringBuffer 未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51586471/