Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 从颤振列表中提取数字并用逗号分隔_Flutter_Dart - Fatal编程技术网

Flutter 从颤振列表中提取数字并用逗号分隔

Flutter 从颤振列表中提取数字并用逗号分隔,flutter,dart,Flutter,Dart,List listFinal=[] 所以listFinal中有来自多个列表的值,如下所示。 [“测试:111-333-5555”,“测试2:222-333-4555”],[“测试3:555-333-2222”] 如何制作此列表,使其仅提取数字并用逗号分隔 最终结果应该是这样的 [11133355552223345555553332222] 我可以考虑修剪或regexp,但不确定如何实现这一点 非常感谢。试试这个 void main() { List<String> numberL

List listFinal=[]

所以listFinal中有来自多个列表的值,如下所示。 [“测试:111-333-5555”,“测试2:222-333-4555”],[“测试3:555-333-2222”]

如何制作此列表,使其仅提取数字并用逗号分隔

最终结果应该是这样的 [11133355552223345555553332222]

我可以考虑修剪或regexp,但不确定如何实现这一点

非常感谢。

试试这个

void main() {
  List<String> numberList=[];
  List<List<dynamic>> demoList=[["test: 111-333-5555", "test2: 222-333-4555"], ["test3: 555-333-2222"]];
   for(int i=0;i<demoList.length;i++){
        numberList.addAll(demoList[i].map((e) => e.toString().split(":")[1].replaceAll("-", "")).toList());
    }
  print(numberList.toString());
}
void main(){
列表编号列表=[];
列表demoList=[“测试:111-333-5555”,“测试2:222-333-4555”],[“测试3:555-333-2222”];
对于(int i=0;即toString().split(“:”[1].replaceAll(“-”,”).toList());
}
打印(numberList.toString());
}

以下是一个让您开始学习的示例。这不会处理诸如格式错误的输入字符串之类的问题。第一步是使用
.expand
“展平”列表,然后对展平的iterable的每个元素使用正则表达式提取子字符串。其他选项可能包括使用
.substring
精确提取字符串的最后12个字符

你可以在行动中看到这一点


让我们用一种简单的方式来做这件事


  List<List<String>> inputList =  [
    ["test: 111-333-5555", "test2: 222-333-4555"], 
    ["test3: 555-333-2222"]
  ];
  List resultList = [];
  
  print('Input List : $inputList');
  
  inputList.forEach((subList){
    subList.forEach((element){
      var temp = element.split(' ')[1].replaceAll('-', '');
      resultList.add(temp);
    });    
  });
  
  print('Output List : $resultList');


列表输入列表=[
[“测试:111-333-5555”,“测试2:222-333-4555”],
[“测试3:555-333-2222”]
];
列表结果列表=[];
打印(“输入列表:$inputList”);
inputList.forEach((子列表){
子列表.forEach((元素){
var temp=element.split(“”)[1].replaceAll(“-”,“”);
结果列表添加(临时);
});    
});
打印('Output List:$resultList');
在这里,我将您的列表作为inputList,并将结果存储在resultList中。 对于inputList的每个元素,我们都会得到一个子列表。我已将该子列表的元素转换为所需的格式,并将其添加到列表中


快乐编码:)

刚刚注意到您希望将它们作为
ints
。更新了dartpad。一些提示:对于惯用Dart代码(),不建议使用变量上的类型注释。
.toString()
调用
print()
的参数不是必需的。无需在
.addAll()
的参数中调用
.toList()
e.toString()
是不必要的,因为
e
已经是一个字符串-如果您没有将局部变量键入为
List
,而是让它被推断为
List
一些提示:我们通常避免使用
.forEach
中包含函数文本()
String.split()
返回一个列表,因此无需在
.split()之后调用
.toList()
。对于最后一个字符串,惯用的方法是插值,而不是对字符串使用
+
<代码>打印('Output List:$resultList')()谢谢。我会处理的。

  List<List<String>> inputList =  [
    ["test: 111-333-5555", "test2: 222-333-4555"], 
    ["test3: 555-333-2222"]
  ];
  List resultList = [];
  
  print('Input List : $inputList');
  
  inputList.forEach((subList){
    subList.forEach((element){
      var temp = element.split(' ')[1].replaceAll('-', '');
      resultList.add(temp);
    });    
  });
  
  print('Output List : $resultList');