【发布时间】:2022-01-13 13:56:43
【问题描述】:
我想过滤一个列表并删除不包含以特定字符串开头的单词的字符串。
Fe.:搜索以“some”开头的单词
“这是一些动物的列表” - 应该在结果中
“这是一个类似动物的列表” - 应该在结果中
“这是一个漂亮动物的列表” - 不应该出现在结果中
【问题讨论】:
标签: flutter dart search filter
我想过滤一个列表并删除不包含以特定字符串开头的单词的字符串。
Fe.:搜索以“some”开头的单词
“这是一些动物的列表” - 应该在结果中
“这是一个类似动物的列表” - 应该在结果中
“这是一个漂亮动物的列表” - 不应该出现在结果中
【问题讨论】:
标签: flutter dart search filter
可能不是性能最高的,但除非您对数百万个项目执行此操作,否则应该没有任何问题:
final l = [
'That is a list of some animals',
'That is a list of something like animals',
'That is a list of handsome animals',
];
l.retainWhere((str) => str.split(' ').any((word) => word.startsWith('some')));
【讨论】:
这个问题已经用最简单的代码形式回答了。但我是用外行的方式来做的。
final list = [
'That is a list of some animals',
'That is a list of something like animals',
'That is a list of handsome animals',
];
for(var i = 0 ; i < list.length ; i++){
var sentence = list[i].split(' ');
bool found = false;
for(var j = 0 ; j < sentence.length ; j++){
if (sentence[j].startsWith('some')){
found = true;
}
}
if(!found){
list.removeAt(i);
found = false;
}
}
【讨论】: