【问题标题】: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]

【问题讨论】:

标签: dart


【解决方案1】:
List list = ['aa', 'bb', 'cc'];
var str = '"${list.map((s) => "'$s'").toList()}"';

var str = '"[\'' + list.join("', '") + '\']"';

【讨论】:

    【解决方案2】:

    我建议使用来自dart:convertjsonEncode。 这意味着您的字符串将使用" 而不是' 进行引用,并且逗号后不会有漂亮的空格,但它也比尝试自己创建字符串更简单、更安全,这意味着您可以阅读使用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']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-11
      相关资源
      最近更新 更多