Java代码如何判断String是否包含子串呢?

乔欣 Java经验 发布时间:2023-03-13 20:36:54 阅读数:371 1
下文笔者将讲述四种检测一个String是否包含子串的方法分享,如下所示
检测一个字符串是否包含子串的方法分享

JDK原生方法String.indexOf

在String对象的函数中
  提供indexOf(subStr)方法
  返回子串subStr第一次出现的位置
  如果不存在则返回-1
//包含Java
assertEquals(7, "Java265.com Java".indexOf("Java"));
//如果包含多个,返回第一次出现位置
assertEquals(0, "Java Java".indexOf("Java"));
//大小写敏感
assertEquals(-1, "Google Guava".indexOf("guava"));

JDK原生方法String.contains

contains(subStr)
   返回类型为boolean
 如果包含则返回true
   不包含则返回false
//包含Java
assertTrue("我爱 Java".contains("Java"));
//大小写敏感,不包含GO
assertFalse("世界上最好的语言Java".contains("语言"));
//转为大写后包含
assertTrue("Java265".toUpperCase().contains("JAVA"));
注意事项:
    实际上contains方法的底层是采用indexOf进行判断
public boolean contains(CharSequence s) {
  return indexOf(s.toString()) > -1;
}

JDK原生中使用正则匹配Pattern

Pattern pattern = Pattern.compile("Java"); //包含Java Matcher matcher1 = pattern.matcher("Python, Java, Go, C++"); assertTrue(matcher1.find()); //不包含Java Matcher matcher2 = pattern.matcher("Python, C, Go, Matlab"); assertFalse(matcher2.find());

借助Apache库中StringUtils.contains方法

Apache中commons-lang3
   提供许多开箱即用的功能
 StringUtils提供许多与字符串相关的功能
//包含sub
assertTrue(StringUtils.contains("String subString", "sub"));
//大小写敏感
assertFalse(StringUtils.contains("This is Java", "java"));
//忽略大小写
assertTrue(StringUtils.containsIgnoreCase("This is Java", "java"));
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202303/16787110626024.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者