如何在Dart中将list<String>转换为String而不需要迭代?

80

Dart中是否有像Java和C#的String.join()方法?

input:

nums: ["20",  "3005",  "2"]

输出:

nums = "2030052"
4个回答

180

join 是 List 类的一个方法,而不是 String 类:

List<String> yourList = ["20", "3005", "2"];

// To test that the above the above
yourList.join() == '2030052';     // true
yourList.join(',') == '20,3005,2'; // true, with "," delimiter

2
yourList.join()? - zerkms
@zerkms 是的,这可以完成工作并返回一个字符串。 - Mohamed Dernoun
2
@MohamedDernoun 这是一条评论,指出了Mike犯的错别字,他们已经修正了。 - zerkms

7

这也许不是最佳解决方案,但你可以使用Dart Lists中的reduce方法,通过迭代地组合集合中的元素来将集合减少到单个值。

String nums = numsList.reduce((value, element) => value + ',' + element);

必须记住,可迭代对象至少要有一个元素。如果它只有一个元素,则返回该元素。


2
在我的情况下,我必须将其转换为平面字符串。所以这是我找到的方法;
List<String> tags = ["#heyy", "@newday", "#newpp"];

    
print(tags.join(' ')); // "#heyy @newday #newpp"

0
List<String> onlyString=[];
onlyString.add("Flutter");
for(int i=0; i < onlyString.length; i++){
print(onlyString[i].toString());}

7
虽然这段代码可能回答了问题,但提供关于为什么或如何回答问题的额外上下文信息可以提高其长期价值。 - Al Foиce ѫ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接