0
我有一个TextField,允许用户从Singleton数据库中搜索Employee。每个员工都有名字和姓氏。使用正则表达式过滤FilteredList?
searchBar.textProperty().addListener(
(observable, oldValue, newValue) -> {
filteredList.setPredicate(arg0 -> {
String nameString = arg0.getFirst() + arg0.getLast();
nameString = nameString.toUpperCase();
if (arg0.getFirst().toLowerCase()
.contains(newValue.toLowerCase())
|| arg0.getLast().toLowerCase()
.contains(newValue.toLowerCase()))
return true;
return false;
});
});
如果我有一个名为“约翰·史密斯”的人,该过滤器将正常工作,如果我搜索: “约翰” “约翰” “史密斯” “史密斯” 但不是 “约翰Smith“ ”Smith John“ ”Smith,John“ 如何正确使用我的搜索查询和正则表达式来查找Employee?例如,查询5个单词,我们可以尝试测试15个子字符串。
JACOB Ĵ 甲 Ç ö 乙 JA AC CO OB JAC COB JACO ACOB
这将是寻找这样每一个可能的匹配远太昂贵。什么是最有效的方法呢?我希望能够以“Johnsmith”或“Smithjo”或类似的东西找到John Smith。