JAVA语言-判断String是否包含子串
发布日期:2021-06-29 22:26:29
浏览次数:2
分类:技术文章
本文共 1466 字,大约阅读时间需要 4 分钟。
文章目录
JAVA语言 判断String是否包含子串
【Java必修课】判断String是否包含子串的四种方法及性能对比
参考URL: https://www.cnblogs.com/larrydpk/p/12459386.html1 简介
判断一个字符串是否包含某个特定子串是常见的场景,比如判断一篇文章是否包含敏感词汇、判断日志是否有ERROR信息等。本文将介绍四种方法并进行性能测试。
2 四种方法
2.1 JDK原生方法String.indexOf
在String的函数中,提供了indexOf(subStr)方法,返回子串subStr第一次出现的位置,如果不存在则返回-1。例子如下:
//包含JavaassertEquals(7, "Pkslow Java".indexOf("Java"));//如果包含多个,返回第一次出现位置assertEquals(0, "Java Java".indexOf("Java"));//大小写敏感assertEquals(-1, "Google Guava".indexOf("guava"));
2.2 JDK原生方法String.contains
最直观判断的方法是contains(subStr),返回类型为boolean,如果包含返回true,不包含则返回false。例子如下:
//包含JavaassertTrue("code in Java".contains("Java"));//大小写敏感,不包含GOassertFalse("Let's go".contains("GO"));//转为大写后包含assertTrue("Let's go".toUpperCase().contains("GO"));
实际上,String的contains方法是通过调用indexOf方法来判断的,源码如下:
public boolean contains(CharSequence s) { return indexOf(s.toString()) > -1;}
2.3 JDK原生正则匹配Pattern
通过强大的正则匹配来判断,虽然有点杀鸡用牛刀的感觉,但也不是不能用,例子如下:Pattern pattern = Pattern.compile("Java");//包含JavaMatcher matcher1 = pattern.matcher("Python, Java, Go, C++");assertTrue(matcher1.find());//不包含JavaMatcher matcher2 = pattern.matcher("Python, C, Go, Matlab");assertFalse(matcher2.find());
2.4 Apache库StringUtils.contains
Apache的commons-lang3提供许多开箱即用的功能,StringUtils就提供了许多与字符串相关的功能,例子如下://包含subassertTrue(StringUtils.contains("String subString", "sub"));//大小写敏感assertFalse(StringUtils.contains("This is Java", "java"));//忽略大小写assertTrue(StringUtils.containsIgnoreCase("This is Java", "java"));
转载地址:https://docker.blog.csdn.net/article/details/110851075 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
能坚持,总会有不一样的收获!
[***.219.124.196]2024年04月24日 21时01分31秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!