随机位置串颤振搜索



我想在List of Strings中进行搜索,但是搜索查询不需要按照结果的顺序进行。

假设我有一个字符串列表

List<String> a = [
Fracture of right arm, 
Fracture of left arm, 
Fracture of right leg, 
Fracture of left leg,
];

,我想实现一个搜索过滤器,当我输入fracture right时,结果将是

Fracture of right leg
Fracture of right arm

如何在Flutter中执行此操作?因为颤振contains()只检测到I型fracture **of** right

你可以试试:

List<String> a = [
"Fracture of right arm",
"Fracture of left arm",
"Fracture of right leg",
"Fracture of left leg",
];
String query = "fracture right";
List<String> terms = query.toLowerCase().split(" ");
List<String> matches = a.where(
(el) {
var elLower = el.toLowerCase();
for (var term in terms) {
if (!elLower.contains(term)) {
return false;
}
}
return true;
},
).toList();
print(matches);

请注意,无论顺序如何,它都会找到匹配项,您可以修改它以禁止这种情况。

你可以试试下面的代码:

var aFilter = a.where((p0) => (p0.toLowerCase().contains("fracture of right")).toList();

你得到一个包含过滤元素的新列表。

最新更新