Java中如何判断字符串是否包含指定子串?
在Java中,判断字符串是否包含指定子串的核心方法是使用String类的contains()方法,该方法返回一个布尔值,直接指示目标字符串是否存在。str.contains("指定子串")会检查str中是否包含"指定子串",若包含则返回true,否则返回false,这一方法简洁高效,是日常开发中最常用的解决方案。
除了contains()方法,Java还提供了其他几种灵活的方式来实现字符串包含性检查,适用于不同场景:

-
indexOf()方法:通过查找子串的索引位置来判断,如果str.indexOf("指定子串")返回的值大于或等于0,则表示包含;若返回-1,则不包含。if (str.indexOf("Java") != -1) { System.out.println("字符串包含'Java'"); }这种方法在需要获取子串位置时尤为有用。
-
matches()方法:基于正则表达式进行匹配,适合复杂模式检查,判断字符串是否包含数字:if (str.matches(".*\\d.*")) { System.out.println("字符串包含数字"); }注意,正则表达式可能带来性能开销,简单包含检查建议优先使用
contains()。 -
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





