当前位置: 首页 > news >正文

java判断一个字符串(如 str1)是否在给定的一组字符串

在 Java 中,有几种简洁的方式可以判断一个字符串(如 str1)是否在给定的一组字符串(如 str2, str3, str4)中:

1️⃣ ​直接使用 || 逻辑运算符​(适用于少量固定字符串)

if (str1.equals(str2) || str1.equals(str3) || str1.equals(str4)) {// str1 存在于 str2/str3/str4 中
}

2️⃣ ​使用 Set 集合​(推荐,代码简洁且效率高)

Set<String> set = new HashSet<>(Arrays.asList(str2, str3, str4));
if (set.contains(str1)) {// str1 存在于集合中
}

3️⃣ ​使用 Apache Commons Lang 工具类​(需第三方库)

import org.apache.commons.lang3.StringUtils;if (StringUtils.equalsAny(str1, str2, str3, str4)) {// str1 存在于任意字符串中
}

4️⃣ ​使用 Stream API​(Java 8+)

boolean exists = Stream.of(str2, str3, str4).anyMatch(str1::equals);
if (exists) {// str1 存在于集合中
}

5️⃣ ​自建工具函数​(灵活复用)

public class StringUtils {public static boolean isIn(String target, String... options) {for (String option : options) {if (java.util.Objects.equals(target, option)) {return true;}}return false;}
}// 使用示例
if (StringUtils.isIn(str1, str2, str3, str4)) {// str1 存在于其中
}

🔍 关键说明:

  1. 空值安全​:建议使用 Objects.equals(a, b) 代替 a.equals(b),可安全处理 null 值(避免 NPE)。
  2. 效率考量​:
    • 少量固定值:直接用 || 最快
    • 动态值/大量值:HashSet 的 O(1) 复杂度更优
  3. 依赖推荐​:
    • 若项目中已有 Apache Commons Lang,推荐 StringUtils.equalsAny()
    • 纯 JDK 方案:Set 或 Stream 最佳

🛠️ Objects.equals() 处理 null 的示例:

import java.util.Objects;String str1 = null;
String str2 = "hello";// 安全比较
if (Objects.equals(str1, str2)) { System.out.println("Equal with null safety!");
}

选择方法时需根据场景(字符串数量、代码复用性、项目依赖)灵活选用。

相关文章:

  • linux如何配置wifi连接
  • 微信小程序开发一个自定义组件的详细教程
  • LLM应用开发(九)- 幻觉及如何缓解
  • gateway 网关 路由新增 (已亲测)
  • HarmonyOS 实战:给笔记应用加防截图水印
  • EMCC 13c 报错 “Metrics Global Cache Blocks Lost is at XXX“ 解决
  • 大语言模型备案与深度合成算法备案的区别与联系
  • yoloe优化:可支持点提示进行检测分割
  • Python训练第四十四天
  • Windows系统下npm报错node-gyp configure got “gyp ERR“解决方法
  • Kafka消息队列笔记
  • 10. MySQL索引
  • Windows系统工具:WinToolsPlus 之 SQL Server Suspect/质疑/置疑/可疑/单用户等 修复
  • ​BEV和OCC学习-3:mmdet3d 坐标系
  • Spark实战能力测评模拟题精析【模拟考】
  • webpack打包学习
  • Webpack性能优化:构建速度与体积优化策略
  • 6.4本日总结
  • 大数据-278 Spark MLib - 基础介绍 机器学习算法 梯度提升树 GBDT案例 详解
  • Three.js进阶之音频处理与展示
  • 公司品牌logo设计/seo免费优化
  • 重庆企业网站开发服务/流量主广告点击自助平台
  • 响应式网站案例源码/衡阳seo排名
  • 深业资本有限公司网站建设/谷歌海外推广
  • 深圳市政府网站建设公司/外链网址
  • 平凉建设局网站/服务器租用