2

I am currently just started a Flutter project and is found quite frustrated when playing around with the StringBuffer class, I am having the below codes which format and apply the url to my class;

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

However the initial value of baseUri is http://locahost/test////, but the final value of _baseUri is then be settled as [http://localhost/test, /] which I may expect a simple http://localhost/test/, have also tried .write() and .writeAll(), any help will be appreciated

Zay Lau
  • 1,856
  • 1
  • 10
  • 17

1 Answers1

4

StringBuffer has an optional parameter in the constructor, which will take any object and call toString() on it. The result of your code above is just toString() on a List. If you want to write an Iterable to the buffer, you instead want to use StringBuffer.writeAll which will iterate over the values and add each string to the buffer.

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

Although with only two values you could also just use string interpolation instead.

return '${Connector._baseUri}/';
Jonah Williams
  • 20,499
  • 6
  • 65
  • 53