双列集合的方法被标注了@Beat表示不稳定
使用方法
1.通过on方法设置分割符号
2.使用omitEmptyStrings方法可以去掉空元素
3.使用trimResults方法删除元素前后空白字符
4.使用split/splitToList/splitToStream指定将字符串切分成迭代器/集合/流
5.使用on/onPattern可以指定切分的正则表达式
6.通过fixedLength按长度切分字符串
注意:
使用limit方法可以控制切分元素的个数
// [Hello, Java] List<String> list1 = Splitter.on("|").splitToList("Hello|Java"); System.out.println(list1); // [Hello, Java, , , ] List<String> list2 = Splitter.on("|").splitToList("Hello|Java|||"); System.out.println(list2); // [Hello , Java ] 元素带有空白字符 List<String> list3 = Splitter.on("|").omitEmptyStrings().splitToList("Hello | Java |||"); System.out.println(list3); // [Hello, Java] 元素空白字符被删除 List<String> list4 = Splitter.on("|").trimResults().omitEmptyStrings().splitToList("Hello | Java |||"); System.out.println(list4); // [aaaa, bbbb, cccc] List<String> list5 = Splitter.fixedLength(4).splitToList("aaaabbbbcccc"); System.out.println(list5); // [Java, C++, C#Shell] 元素分割够不再切分 List<String> list6 = Splitter.on("#").limit(3).splitToList("Java#C++#C#Shell"); System.out.println(list6); // [Java, C++, C#Shell] List<String> list7 = Splitter.onPattern("\\#").limit(3).splitToList("Java#C++#C#Shell"); // [Java, C++, C#Shell] List<String> list7_1 = Splitter.on(Pattern.compile("#")).limit(3).splitToList("Java#C++#C#Shell"); System.out.println(list7); System.out.println(list7_1); // {海淀区=北京, 朝阳区=北京, 东城区=北京, 西城区=北京, 昌平区=北京} String beijingDistricts = " 海淀区:北京| 朝阳区:北京| 东城区:北京 ||西城区:北京|昌平区:北京 | |"; Map<String, String> map1 = Splitter.on("|").omitEmptyStrings().trimResults().withKeyValueSeparator(":").split(beijingDistricts); System.out.println(map1);
原文:https://www.cnblogs.com/zwy008/p/14826649.html