如何将列表转换为字符串并保存它的引号?
Posted
技术标签:
【中文标题】如何将列表转换为字符串并保存它的引号?【英文标题】:How to cast list to string and save it's quotes marks? 【发布时间】:2021-10-10 04:42:14 【问题描述】:我有清单:
List list = ['aa', 'bb', 'cc'];
我需要获取字符串:
"['aa', 'bb', 'cc']"
.toString()
我得到了:
[aa, bb, cc]
【问题讨论】:
***.com/q/56443354/2804581 【参考方案1】:List list = ['aa', 'bb', 'cc'];
var str = '"$list.map((s) => "'$s'").toList()"';
或
var str = '"[\'' + list.join("', '") + '\']"';
【讨论】:
【参考方案2】:我建议使用来自dart:convert
的jsonEncode
。
这意味着您的字符串将使用"
而不是'
进行引用,并且逗号后不会有漂亮的空格,但它也比尝试自己创建字符串更简单、更安全,这意味着您可以阅读使用jsonDecode
返回列表。
非常方便,JSON 列表和字符串值看起来就像 Dart 列表和字符串文字。它还负责转义字符串中可能包含的任何嵌入的 "
或 \
字符。
var myList = ['aa', 'bb', 'cc'];
var string = jsonEncode(myList);
print(string); // ["aa","bb","cc"]
或者,只在字符串本身上使用jsonEncode
:
var string2 = [for (var s in myList) jsonEncode(s)].toString();
print(string); // ["aa", "bb", "cc"]
如果你想要 '
引用的字符串,那么这样做可能更安全:
String myStringEncode(String content) =>
"'$content.replaceAllMapped(RegExp(r"[\\']"), (m) => "\\$m[0]")'";
var string3 = [for (var s in myList) myStringEncode(s)].toString();
print(string3); // ['aa', 'bb', 'cc']
【讨论】:
以上是关于如何将列表转换为字符串并保存它的引号?的主要内容,如果未能解决你的问题,请参考以下文章