在 Flutter 中过滤包含单词的字符串
Filter strings containing a word in Flutter
我想过滤列表并删除不包含以特定字符串开头的单词的字符串。
Fe.: 搜索以“some”开头的词
“这是一些动物的列表”- 应该在结果中
“这是一个类似于动物的列表”- 应该在结果中
“这是一份帅气动物的名单”- 不应该出现在结果中
可能不是最高效的,但除非您对数百万项执行此操作,否则应该没有任何问题:
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;
}
}
- 列表中存储了三个句子。
- 使用循环获取每个句子。
- 在space的基础上拆分句子,得到每个词。
- 用数组检查句子的每个单词,是否从some
开始
- 如果句子中的任何单词是从 some 开始的,那么我从列表中删除了那个句子
我想过滤列表并删除不包含以特定字符串开头的单词的字符串。
Fe.: 搜索以“some”开头的词
“这是一些动物的列表”- 应该在结果中
“这是一个类似于动物的列表”- 应该在结果中
“这是一份帅气动物的名单”- 不应该出现在结果中
可能不是最高效的,但除非您对数百万项执行此操作,否则应该没有任何问题:
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;
}
}
- 列表中存储了三个句子。
- 使用循环获取每个句子。
- 在space的基础上拆分句子,得到每个词。
- 用数组检查句子的每个单词,是否从some 开始
- 如果句子中的任何单词是从 some 开始的,那么我从列表中删除了那个句子