2017-05-05 76 views
0

的名單,這是因爲這裏的同一個問題:飛鏢:轉換列表的列表的字符串表示要列出

How can I convert this string to list of lists?

但飛鏢而不是蟒蛇。我的目標(如另一個問題)是採取如下字符串:

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] 

但卻不知道是否有在達特一個更好的方法,奮力測量值的任何在線?

回答

2

您可以使用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

+0

啊,這正是我努力。我現在看到,雖然我遇到的問題是我正在轉換從GUI輸入的文本。如果您嘗試: var lists = JSON.decode('[[sometext],[122],[411]]'); 然後你得到一個錯誤,這肯定是我遇到的問題。 – SSS

+0

這是因爲'sometext'需要引用是有效的JSON,但你的問題不包含文本,只有數字;-) –

+0

我更新了我的答案。 –

相關問題