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