【发布时间】:2014-05-23 07:31:37
【问题描述】:
我有一个 TextField,允许用户从 Singleton 数据库中搜索员工。每个员工都有名字和姓氏。
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;
});
});
如果我有一个名为“John Smith”的人,如果我搜索以下内容,过滤器将正常工作: “约翰” “约翰” “史密斯” “史密斯” 但不是 “约翰·史密斯” “史密斯约翰” “史密斯,约翰” 如何正确使用带有正则表达式的搜索查询来查找员工?例如,一个包含 5 个单词的查询有 15 个子字符串,我们可以尝试对其进行测试。
雅各布 Ĵ 一种 C ○ 乙 JA 交流电 一氧化碳 产科 江淮汽车 COB 雅科 ACOB
以这种方式搜索所有可能的匹配项的成本太高了。最有效的方法是什么?我希望能够找到带有“Johnsmith”或“Smithjo”或类似名称的 John Smith。
【问题讨论】: