微信公众号
切分后结果是单个元素<代码>(“1”)> 代码,数组长度是1 .
李> <李>有分隔符,分隔符切分后没有空字符串出现
<=坝镅詊ava代码类>//str=?、2”//代码同上……代码>
切分后结果是<代码>(“1”,“2”)> 代码,数组长度是2。(假设分隔符是n个,分割后的元素个数是n + 1个)
李> <李>有分隔符,分隔符切分后有空字符串出现
<=坝镅詊ava代码类>//str=?、2”//代码同上……代码>
切分后结果是<代码>[" 1 "," "," 2 "]> 代码,数组长度是3。(假设分隔符是n个,分割后的元素个数是n + 1个)
李>最终总结不管分隔符有多少个,最终切分的结果都是n + 1个元素。也是正常业务逻辑所需要的。但是这里有一个问题,如果传入的字符串是<代码>零> 代码的时候会报<代码> NullPointException 代码>异常,需要另外加一层非空判断。
共享提供的stringutil的工具类
具体全限定类名是<代码> org.apache.commons.lang3.StringUtils> 代码,这个可以说是最常用一个字符串的工具类。如判断非零<代码> 代码,非空字符串或者非空格,用<代码> isNotBlank 代码>方法,使用集合元素组装字符串,用<代码>与代码>方法等等。现在来看一下<代码> 代码>方分裂法在不同的情况下是如何实现。
-
<李>
没有分隔符的字符串
<=坝镅詊ava代码类>//str=?” 公共静态孔隙split1 (String str) { String []=org.apache.commons.lang3.StringUtils.split分裂(str, ", "); (字符串分裂:分裂){ System.out.println (“→”+分); } system . out。println(“数组长度:“+ splits.length); }代码>
切分后的结果是单个元素<代码>(“1”)> 代码,数组长度为1 .
李> <李>有分隔符,分隔符切分后没有空字符串出现
<=坝镅詊ava代码类>//str=?、2”//代码同上……代码>
切分后的结果是两个元素<代码>(“1”,“2”)> 代码,数组长度为2 .
李> <李>有分隔符,分隔符切分后有空字符串出现
<=坝镅詊ava代码类>//str=?、2”//代码同上……代码>
切分后的结果和上一种情况结果是一样的,也是两个元素<代码>(“1”,“2”)> 代码,数组长度为2 .
李>从这里就可以看的出来问题的所在,当出现空字符串的时候,会自动将空字符串丢弃,只保留非空字符串。但是这里还是需要注意的是如果是空格,也会形成一个元素,比如现在str输入的是<代码> 1,,2 "> 代码,两个分隔符间有一个空格,此时就会切分成三个元素。
春天下util包提供的stringutil的工具类
全限定类名<代码> org.springframework.util.StringUtils> 代码,这个stringutil也经常被用的到,因为在输入的stringutil的时候,想法自动提示,往往它就是在第一位。那它和上面两种在<代码> 代码>方分裂法上有什么不同呢?
-
<李>
没有分隔符的字符串
<=坝镅詊ava代码类>//str=?” 公共静态空射(String str) { String []=org.springframework.util.StringUtils分裂。分割(str, ", "); (字符串分裂:分裂){ System.out.println (“→”+分); } system . out。println(“数组长度:“+ splits.length); }代码>