皮皮网
皮皮网

【牛哼哼源码】【烟雨源码】【pwn 源码】java contains源码

来源:钓鱼 定位网站源码 发表时间:2024-12-22 11:28:51

1.【Java必修课】判断String是源码否包含子串的四种方法及性能对比

java contains源码

【Java必修课】判断String是否包含子串的四种方法及性能对比

       判断一个字符串是否包含某个特定子串是常见的场景,比如判断一篇文章是源码否包含敏感词汇、判断日志是源码否有ERROR信息等。本文将介绍四种方法并进行性能测试。源码

       在String的源码函数中,提供了indexOf(subStr)方法,源码牛哼哼源码返回子串subStr第一次出现的源码位置,如果不存在则返回-1。源码例子如下:

       最直观判断的源码方法是contains(subStr),返回类型为boolean,源码如果包含返回true,源码不包含则返回false。源码例子如下:

       实际上,源码烟雨源码String的源码contains方法是通过调用indexOf方法来判断的,源码如下:

       通过强大的源码正则匹配来判断,虽然有点杀鸡用牛刀的感觉,但也不是不能用,例子如下:

       Apache的commons-lang3提供许多开箱即用的功能,StringUtils就提供了许多与字符串相关的pwn 源码功能,例子如下:

       我们使用JMH工具来对四种方法进行性能测试,Maven引入代码如下:

       测试代码如下:

       测试结果如下:

       最快的就是indexOf方法,其次是contains方法,二者应该没有实际区别,contains是调用indexOf来实现的。Apache的grazzly 源码StringUtils为第三方库,相对慢一些。最慢的是使用了正则的Pattern的方法,这不难理解,正则引擎的匹配是比较耗性能的。

       本文介绍了判断一个字符串是否包含某个特定子串的四种方法,并通过性能测试进行了对比。pim源码其中性能最好的是String的indexOf方法和contains方法,建议使用contains方法,性能好,跟indexOf相比,更直观,更不容易犯错。毕竟让每个人时刻记住返回-1代表不存在也不是一件容易的事。

       但是,使用indexOf和contains方法都需要注意做判空处理,这时StringUtils的优势就体现出来了。

       总结,四种方法如下:

       indexOf(subStr):返回子串第一次出现的位置,不存在返回-1。

       contains(subStr):返回true或false,是否包含。

       Pattern匹配:使用正则匹配,相对耗性能。

       StringUtils.contains:Apache库提供,相对慢。

       性能测试结果显示,indexOf和contains方法最佳,建议使用contains方法。Apache库的StringUtils方法相对慢,正则匹配方法最慢。在使用方法时,注意处理空值问题。希望本文能帮助你更好地理解和使用这些方法。

相关栏目:知识