实现Java初级项目搜索功能需采用模糊匹配与关键字检索,适用于商品、用户、文章等场景;2. 模糊匹配通过String.contains()判断字段包含关系,可转小写实现不区分大小写;3. 多字段检索将姓名、手机、邮箱等拼接后统一匹配,实现简单但可能误匹配;4. 分词检索支持多关键词输入,拆分后逐个匹配,提升准确性;5. Web项目中通过Servlet获取前端q参数接收搜索词,结合JSP展示结果;6. 无需引入Elasticsearch或数据库全文索引,使用Java集合与字符串处理即可满足需求。

在Java初级项目中添加搜索功能,核心是实现模糊匹配与关键字检索。这类功能常见于商品列表、用户管理、文章查询等场景。实现方式不需要复杂框架,使用基础的Java集合和字符串处理就能完成。
最简单的模糊匹配是判断目标字段是否包含用户输入的关键词。比如搜索“张”,能查出“张三”“小张”等记录。
示例代码:
public List<User> searchUsersByName(List<User> userList, String keyword) {
List<User> result = new ArrayList<>();
for (User user : userList) {
if (user.getName().contains(keyword)) {
result.add(user);
}
}
return result;
}
说明:使用String.contains()方法进行子串匹配,不区分大小写时可先统一转为小写:
立即学习“Java免费学习笔记(深入)”;
if (user.getName().toLowerCase().contains(keyword.toLowerCase())) {
result.add(user);
}
实际需求中,用户可能希望同时在姓名、手机号、邮箱等字段中查找。可以将多个字段拼接后进行匹配。
示例:
public List<User> searchByKeyword(List<User> userList, String keyword) {
List<User> result = new ArrayList<>();
String lowerKeyword = keyword.toLowerCase();
for (User user : userList) {
String combined = user.getName() + user.getPhone() + user.getEmail();
if (combined.toLowerCase().contains(lowerKeyword)) {
result.add(user);
}
}
return result;
}
优点:实现简单,适合数据量小的场景;缺点:可能误匹配(如手机号和邮箱连在一起出现关键词)。
若用户输入多个词(如“北京 张”),希望同时匹配“城市=北京”且“姓名含张”,可对关键词分词后逐一判断。
示例逻辑:
public List<User> searchByMultipleKeywords(List<User> userList, String keywordInput) {
List<User> result = new ArrayList<>();
String[] keywords = keywordInput.trim().split("\s+"); // 按空格拆分
for (User user : userList) {
boolean matchAll = true;
for (String kw : keywords) {
String lowerKw = kw.toLowerCase();
if (!user.getName().toLowerCase().contains(lowerKw) &&
!user.getCity().toLowerCase().contains(lowerKw)) {
matchAll = false;
break;
}
}
if (matchAll) {
result.add(user);
}
}
return result;
}
说明:每个关键词都必须在任一字段中出现才算匹配,可根据业务调整匹配规则。
如果是Web项目(如使用Servlet),可通过HTTP参数获取关键词:
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
String keyword = req.getParameter("q");
if (keyword == null) keyword = "";
List<User> allUsers = userService.getAllUsers();
List<User> results = searchByKeyword(allUsers, keyword);
req.setAttribute("users", results);
req.getRequestDispatcher("user-list.jsp").forward(req, resp);
}
前端HTML搜索框:
<form method="get" action="search">
<input type="text" name="q" placeholder="输入姓名或城市...">
<button type="submit">搜索</button>
</form>
基本上就这些。对于初级项目,不需要引入Elasticsearch或数据库全文索引,用Java原生逻辑处理即可满足需求。关键是根据实际数据结构设计合理的匹配范围和规则,避免漏查或多查。
以上就是Java初级项目如何添加搜索功能_模糊匹配与关键字检索逻辑的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号