JAVA语言-判断String是否包含子串
发布日期:2021-06-29 22:26:29
浏览次数:3
分类:技术文章
本文共 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 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月25日 09时28分44秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
函数-SQL-获取中文的缩写字母(案例)
2019-04-30
18.分段截取函数
2019-04-30
19.字符串比较函数
2019-04-30
20.各种字符串合并处理的示例
2019-04-30
21.动态参数存储过程
2019-04-30
21.字符串在编号查询中应用案例及常见问题
2019-04-30
22.动态SQL语句处理常见问题案例
2019-04-30
23.text与ntext字段的赋值和合并处理案例
2019-04-30
24.IP地址处理函数
2019-04-30
25.text与image字段转换处理案例
2019-04-30
26.字符串并集
2019-04-30
82.触发器字段维护已用
2019-04-30
83.开票统计--涉及到连号处理
2019-04-30
课堂解说-SQL语法
2019-04-30
jquery+easyui文档
2019-04-30
C++Builder 实现监听手机通话状态
2019-04-30
84.简单的交叉报表处理案例
2019-04-30
85.NULL对IN的查询影响及解决案例
2019-04-30
86.各种连接的使用案例
2019-04-30
87.多表联结导致记录重复的案例
2019-04-30