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。