java String的split和index

split(regex, limit)
indexOf(str)

split使用正则分割。

开始以为正则慢于indexOf,其实不对。

后来学习字符串查找的3个实现:朴素算法、正则DFA、KMP,方知jdk如此实现很有道理。正则DFA和KMP的时间复杂度是O(n),而朴素是O(m(n-m+1))。

java实现的split在regex长度是1且不是正则的内置字符,或长度是2但其实是转义字符时会直接使用indexOf,因为此时m=1。

所以查找时尽量用正则或KMP,而不是indexOf。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 9,534评论 0 20
  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 5,416评论 0 3
  • 本章内容 使用对象 创建并操作数组 理解基本的 JavaScript 类型 使用基本类型和基本包装类型 引用类型的...
    闷油瓶小张阅读 3,954评论 0 0
  • 一.String[]java.lang.String.split(Stringregex). 源码注释:Split...
    冯可乐同学阅读 13,789评论 0 6
  • 有一天清晨,这个城市的雾霾散尽 蓝天很蓝,白云很白, 阳光很暖,天气很好。 一样的早起,做早餐,赶公交, 跟往常一...
    lee_eternity阅读 1,805评论 0 0

友情链接更多精彩内容