You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java中如何判断一个String是否被另一个String包含?

Java中判断字符串是否被另一个字符串包含(避免NullPointerException)

Java标准库没有提供直接的isContained方法来判断一个字符串是否被另一个包含,但你完全可以通过反转调用顺序的方式实现需求,同时还能避免因testStr为null导致的NullPointerException。

核心解决方案:反转contains调用顺序

因为你要比较的AnyClass.STRING_CONSTANT是常量,它肯定不为null,所以直接用这个常量调用contains方法,把可能为null的testStr作为参数传入即可:

final String testStr = anyMethod(); // 可能返回null
if (AnyClass.STRING_CONSTANT.contains(testStr)) {
    // 执行你的业务逻辑
}

关键说明:

  • 当testStr为null时,contains(null)会直接返回false,不会抛出NPE,因为String.contains内部处理了null参数的情况(底层调用indexOf(null)返回-1,因此contains返回false)。
  • 这个写法完全替代了先判断testStr != null再调用contains的冗余代码。

自定义边界场景处理(可选)

如果你需要区分testStr为null和testStr确实不被包含的情况,可以补充空判断:

final String testStr = anyMethod();
if (testStr != null && AnyClass.STRING_CONSTANT.contains(testStr)) {
    // 仅当testStr非null且被包含时执行逻辑
}

如果希望把null视为空字符串处理(即空字符串被任何常量包含),可以用Objects.toString统一转换:

import java.util.Objects;

final String testStr = anyMethod();
// 把null转为空字符串,再判断是否被包含
if (AnyClass.STRING_CONSTANT.contains(Objects.toString(testStr, ""))) {
    // 业务逻辑
}

内容的提问来源于stack exchange,提问作者Philippe Gioseffi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 19:03:28