【发布时间】:2021-10-10 04:42:14
【问题描述】:
我有清单:
List list = ['aa', 'bb', 'cc'];
我需要获取字符串:
"['aa', 'bb', 'cc']"
.toString() 我得到了:
[aa, bb, cc]
【问题讨论】:
标签: dart
我有清单:
List list = ['aa', 'bb', 'cc'];
我需要获取字符串:
"['aa', 'bb', 'cc']"
.toString() 我得到了:
[aa, bb, cc]
【问题讨论】:
标签: dart
List list = ['aa', 'bb', 'cc'];
var str = '"${list.map((s) => "'$s'").toList()}"';
或
var str = '"[\'' + list.join("', '") + '\']"';
【讨论】:
我建议使用来自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']
【讨论】: