dart - flutter 中的 StringBuffer 未按预期工作

标签 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,/] 我可能期望一个简单的 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/

相关文章:

php - 在 php 和 dart 之间发送数据

image - 是什么导致Flutter平台之间的图像宽度/覆盖率差异?

Flutter Firestore 身份验证

dart - setState 没有更新值

firebase - 如何从Firestore检索List <Map <String,dynamic >>?

flutter - 如何在 Flutter 中的应用程序启动时显示弹出窗口

firebase - Android 上的 Flutter/Firebase verifyPhoneNumber() 总是调用 recaptcha "Verifying you' re not a robots"

java - StringBuffer equals 方法是否比较内容?

java - StringBuffer 还是同步方法?

java - java中可变字符串和不可变字符串有什么区别