Dart:将列表列表的字符串表示形式转换为列表列表

SSS*_*SSS 6 dart

这是与此处相同的问题:

如何将此字符串转换为列表列表?

但是对于 Dart 而不是 python。我的目标(如在另一个问题中)是采用如下字符串:

String stringRep = '[[123],[122],[411]]';
Run Code Online (Sandbox Code Playgroud)

并将其转换为列表列表。我可以看到我可以使用上面引用的答案中推荐的方法之一来实现这一点,即:

str = "[[0,0,0],[0,0,1],[1,1,0]]"
strs = str.replace('[','').split('],')
lists = [map(int, s.replace(']','').split(',')) for s in strs]
Run Code Online (Sandbox Code Playgroud)

但是想知道 Dart 中是否有更好的方法,但很难在网上找到任何方法?

Gün*_*uer 11

您可以使用 JSON 解码器

import 'dart:convert';

...

var lists = json.decode('[[123],[122],[411]]');
Run Code Online (Sandbox Code Playgroud)

DartPad 示例

更新

final regExp = new RegExp(r'(?:\[)?(\[[^\]]*?\](?:,?))(?:\])?');
final input = '[[sometext],[122],[411]]';
final result = regExp.allMatches(input).map((m) => m.group(1))
  .map((String item) => item.replaceAll(new RegExp(r'[\[\],]'), ''))
  .map((m) => [m])
  .toList();
print(result);
Run Code Online (Sandbox Code Playgroud)

DartPad 示例