Guava 工具类之 Splitter的使用

发布时间 2023-11-06 11:41:12作者: 飘飘雪

Splitter可以对字符串进行分割,在分割时的方式有2种,

  1.按字符/字符串分割

  2.按正则进行分割

Splitter在分割完成时可以转换成listmap

一.按字符进行分割

//1.用指定字符切分字符串,并转换成list
String s1 = "hello|hihi";
String s2 = "hello|haha|||";
Splitter.on("|").splitToList(s1).forEach(System.out::println);
Splitter.on("|").split(s1).forEach(item ->System.out.println(item));

//2.忽略掉空的字符串或者多余的分割符
Splitter.on("|").omitEmptyStrings().splitToList(s2).forEach(System.out::println);
       
 //3.忽略掉字符串中的空格
Splitter.on("|").omitEmptyStrings().trimResults().splitToList("hello | guava|||").forEach(System.out::println);

//4.固定长度分割
Splitter.on("|").fixedLength(4).splitToList("aaaabbbbccccdddd").forEach(System.out::println);


//5.指定长度分割
List<String> list = Splitter.on("#").limit(3).splitToList("a#b#c#d#e#"); //以#来分割,分3部分成 a b #c#d#e 3部分
System.out.println(list.get(0));
System.out.println(list.get(1));
System.out.println(list.get(2));

 

二.按正则来进行分割

//1.传入字符的分割
Splitter.onPattern("\\|").splitToList("hello|world").forEach(System.out::println);
        
//2.传入pattern的分割
Splitter.on(Pattern.compile("\\|")).omitEmptyStrings().trimResults().splitToList("a|b|c||").forEach(System.out::println);

//3.传入pattern 转换成map
  Map<String, String> map = Splitter.on(Pattern.compile("\\|")).omitEmptyStrings()

                       .trimResults().withKeyValueSeparator("=").split("a=b|c=d");

for (Entry<String, String> entry : map.entrySet()) {
  System.out.println(entry.getKey() +" = "+ entry.getValue());
}

转载于:https://www.cnblogs.com/MrRightZhao/p/11302831.html