相关文章推荐
调皮的凉面  ·  Error: Unknown ...·  12 月前    · 
逆袭的移动电源  ·  【jupyter ...·  1 年前    · 

常见String进行split的方法有:

1. JDK中String对象自带的split方法,public String[] split(String regex)

2. commons-lang包中StringUtils提供的splitPreserveAllTokens方法, public static String[] splitPreserveAllTokens(String str, String separatorChars)

3.commons-lang包中StringUtils提供的split方法,public static String[] split(String str, String separatorChars)

1. String.split方法

a. 分割的字符串长度为1,且这个字符不是正则表达式的元字符.$|()[{^?*+\中一个时,按普通字符进行分割;

b. 分割的字符串长度为2,且第一个字符为\,第二个字符不是ASCII中的数字或者字母时,按普通字符串进行分割;

c. 非a或b的情形,使用正则表达式进行分割Pattern.compile(regex).split(this, limit);

2. StringUtils的splitPreserveAllTokens方法和split方法都是调用的StringUtils的splitWorker方法。

private static String[] splitWorker(String str, String separatorChars, int max, boolean preserveAllTokens)

区别在于splitPreserveAllTokens调用splitWorker方法时,preserveAllTokens为true,而split方法调用splitWorker方法时,preserveAllTokens为false。

preserveAllTokens:用来控制是否分割相邻的分割符

举例说明如下:

常见String进行split的方法有:1. JDK中String对象自带的split方法,public String[] split(String regex)2. commons-lang包中StringUtils提供的splitPreserveAllTokens方法, public static String[] splitPreserveAllTokens(String str, ... System.out.println(":ab:cd:ef::". split (":").length);//末尾分隔符全部忽略 System.out.println(":ab:cd:ef::". split (":",-1).length);//不忽略任何一个分隔符 System.out.println(S...
今天用 String Utils# split ,陷入了前两个坑。需求是从数据库 查出用TAG分割的sights和citys,二者在位置上是对应的, 然后根据sight和city查对应的景区。使用的时候先验证 split 之后的sights和citys的长度必须一致。 并且city可能为""。 1、 String Utils# split 会合并相邻的分割符,这个和 String . split 不一致。需要使用sp...
[code=" java "] public static void TestStr(){ //null 和 ""操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ //判断是否Null 或者 "" //System.out.println( String Utils.isEmpty(null)); //System.out.println( String Uti...
问题:使用 split 拆分 String 字符串后拿到的数组发现一个问题-如果拆分的字符串根据拆分规则拆分后,后面的位置上如果没有值,则 split 返回的数组会自动忽略它们。 demo:代码第四行返回的数组长度是4,如果是批量处理 String 操作,使用array[4]时就会报错下标越界问题 String temp = “1,2,3,4,5”; System.out.println(temp. split (",").length); //5 temp = “1,2,3,4,”; System.out.println(t
/*1. 分割字符串 ,可以设定得到数组的长度,但一般情况下不要设定,这样会发生冲突 */ String Utils. split ("y5y,4454,545");//默认是按 ,来分割 String Utils. split ("aaaa#sss", "#");    /*结果是:[aaaa, sss]*/ String Utils. split ("aaa
<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.11</version>...
使用 split ()时应 注意 检查最后一个分隔符后面有无内容,否则最终分割出的数组元素个数有可能与预期得到的个数不相符,导致异常! String str = ",1,2,,"; String [] list1 = str. split (","); String [] list2 = str. split (",",-1); String [] list3 = String Utils. split (str,",
System.out.println(":ab:cd:ef::". split (":").length);//末尾分隔符全部忽略 System.out.println(":ab:cd:ef::". split (":",-1).length);//不忽略任何一个分隔符 System.out.println( String Utils. split (":ab:cd:ef::",":").length
Java split 方法是用来将字符串分割成子字符串的方法。该方法接收一个正则表达式作为参数,并返回一个字符串数组,该数组包含所有与正则表达式匹配的子字符串。例如: String str = "hello,world"; String [] arr = str. split (","); 上面的代码将字符串 "hello,world" 以 "," 为分隔符分割成了两个字符串 "hello" 和 "world",并存储在字符串数组 arr 。 String s = "a-b+c-d-"; String[] splits = s.split("\\+"); String[] splits2 = s.split("\\-"); String[] splits3 = StringUtils.splitPreserveAllTokens(s, "\\-"); [/code] Java中String进行split的注意事项 王大厨不做饭: 老哥,+ - 号怎么分开 spark-shell启动命令详细解析1 ctotalk: