zoukankan      html  css  js  c++  java
  • 2种StringUtils.split和String.split的比较

    StringUtils.split 是对字符串进行拆分的方法。

    StringUtils.split 方法有两个包下面有,分别是 org.springframework.util.StringUtilsorg.apache.commons.lang3.StringUtils

    区别:

    1 String str = "今天上山打老虎,打到一只小松鼠。";
    2 String[] arr = StringUtils.split(str, "上山");
    3  
    4 ==> line_1:今天
    5     line_2:打老虎,打到一只小松鼠。

    第1种:

    1、根据“定界符(delimiter)”将需要拆分的字符串拆分:

    如上面根据“上山”拆分,将得到2个结果:“今天” 和 “打老虎,打到一只小松鼠。”。为什么说是根据“定界符”拆分的,因为它不是根据正则表达式来匹配拆分的,所以正则的[]、*等都会被当做是普通的字符。

    2、只根据第一次出现的地方匹配拆分:

    1 String str = "a今天上山a打老虎,打到一只小松鼠。a";
    2 String[] arr = StringUtils.split(str, "a");
    3  
    4 ==> line_1:
    5     line_2:今天上山a打老虎,打到一只小松鼠。a

    如根据“a”匹配拆分,第一次出现“a”的地方刚好是第一个字符,所以左边拆分到的是空字符,并不是没有东西的,如结果的line_1处。但是第二次甚至是最后面都拆分不出来了。

    第2种:

    1、根据“分隔符(separatorChars)”将需要拆分的字符串拆分:

    1 String str = "今天a上山b打老虎,打到a一只c小松鼠。";
    2 String[] arr = StringUtils.split(str, "abc");
    3  
    4 ==> line_1:今天
    5     line_2:上山
    6     line_3:打老虎,打到
    7     line_4:一只
    8     line_5:小松鼠。


    如上代码方式拆分,会得到5个结果,按以往的理解似乎是拆分不了的,但是却有5条。因为这个包下的此方式根据“分隔符”拆分是将“abc”按照字符分为“a”、“b”、“c”去分别拆分的,所以有5条结果。

    2、会根据“分隔符”出现的地方都进行拆分,但是没有开头和结尾的结果:

    1 String str = "a今天a上山a打老虎,打到a一只a小松鼠。a";
    2 String[] arr = StringUtils.split(str, "a");
    3  
    4 ==> line_1:今天
    5     line_2:上山
    6     line_3:打老虎,打到
    7     line_4:一只
    8     line_5:小松鼠。


    如上所示,不像第1种包下在最左边会有空字符的结果。此处最左边和最右边都没有结果,但是中间出现多少都可以拆分出来。因为这个分隔符是拆分成一个个字符去匹配拆分的,所以正则的内容也是没有的。

    第3种:就是标题中说的String.split

    1、能够根据正则(regex)进行所有匹配的拆分。

    2、匹配符在最左边,那么最左边会有空字符的结果,而右边没有,这个和第1种一样。

    最后做个表格展示一下不同:

    转载博客:https://blog.csdn.net/weixin_39752531/article/details/118609797

  • 相关阅读:
    Cocos2d-iphone 为sprite添加双击的事件响应
    经典书单 —— 语言/算法/机器学习/深度学习/AI/CV/PGM
    经典网络站点、论坛、博客
    经典网络站点、论坛、博客
    Python 格式化输出 —— 小数转化为百分数
    Python 格式化输出 —— 小数转化为百分数
    移位运算与除法、取模运算
    移位运算与除法、取模运算
    火箭、飞行器、探测器的发射
    火箭、飞行器、探测器的发射
  • 原文地址:https://www.cnblogs.com/LEPENGYANG/p/15218510.html
Copyright © 2011-2022 走看看