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

时间:2017-05-05 17:14:54

标签: dart

这是与此相同的问题:

How can I convert this string to list of lists?

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

String stringRep = '[[123],[122],[411]]';

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

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

但是想知道在Dart中是否有更好的方法但是却在努力寻找任何在线方式?

1 个答案:

答案 0 :(得分:4)

您可以使用JSON解码器

import 'dart:convert';

...

var lists = JSON.decode('[[123],[122],[411]]');

DartPad example

<强>更新

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);

DartPad example