Java中如何判断字符串是否包含指定子串?

在Java中,判断字符串是否包含指定子串的核心方法是使用String类的contains()方法,该方法返回一个布尔值,直接指示目标字符串是否存在。str.contains("指定子串")会检查str中是否包含"指定子串",若包含则返回true,否则返回false,这一方法简洁高效,是日常开发中最常用的解决方案。

除了contains()方法,Java还提供了其他几种灵活的方式来实现字符串包含性检查,适用于不同场景:

java判断是否包含指定字符串?Java如何快速判断包含指定字符串?

  1. indexOf()方法:通过查找子串的索引位置来判断,如果str.indexOf("指定子串")返回的值大于或等于0,则表示包含;若返回-1,则不包含。

    if (str.indexOf("Java") != -1) {
        System.out.println("字符串包含'Java'");
    }

    这种方法在需要获取子串位置时尤为有用。

  2. matches()方法:基于正则表达式进行匹配,适合复杂模式检查,判断字符串是否包含数字:

    if (str.matches(".*\\d.*")) {
        System.out.println("字符串包含数字");
    }

    注意,正则表达式可能带来性能开销,简单包含检查建议优先使用contains()

  3. StringUtils.contains()(Apache Commons Lang库):第三方库提供更丰富的功能,如忽略大小写检查,示例:

    if (StringUtils.containsIgnoreCase(str, "java")) {
        System.out.println("字符串包含'java'(不区分大小写)");
    }

    适用于项目已引入该库或需要扩展功能的场景。

性能与使用建议:在大多数情况下,contains()方法是最佳选择,因为它语义清晰且效率高(底层基于indexOf()实现),若需忽略大小写,可结合toLowerCase()toUpperCase()转换后使用,例如str.toLowerCase().contains("java"),对于频繁操作或大数据量处理,注意避免在循环中重复创建字符串对象,以优化内存和速度。

Java中判断字符串包含性有多种工具,开发者应根据具体需求——如简单检查、位置获取或模式匹配——选择合适的方法,从而编写出既高效又易维护的代码。

未经允许不得转载! 作者:HTML前端知识网,转载或复制请以超链接形式并注明出处HTML前端知识网

原文地址:https://www.html4.cn/5372.html发布于:2026-07-15