日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Guava 工具类之 Splitter的使用

發布時間:2024/4/24 综合教程 57 生活家
生活随笔 收集整理的這篇文章主要介紹了 Guava 工具类之 Splitter的使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Splitter可以對字符串進行分割,在分割時的方式有2種,

  1.按字符/字符串分割

  2.按正則進行分割

Splitter在分割完成時可以轉換成list和map

一.按字符進行分割

//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());
}


三.測試

/**
* list轉換為字符串
*/
@Test
public void joinTest(){
  List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom");
  String result = Joiner.on(",").join(names);

  assertEquals(result, "John,Jane,Adam,Tom");
}


/**
* map轉換為字符串
*/
@Test
public void whenConvertMapToString_thenConverted() {
  Map<String, Integer> salary = Maps.newHashMap();
  salary.put("John", 1000);
  salary.put("Jane", 1500);
  String result = Joiner.on(" , ").withKeyValueSeparator(" = ")
    .join(salary);
  System.out.println(result);
}

/**
* list轉String,跳過null
*/
@Test
public void whenConvertListToStringAndSkipNull_thenConverted() {
  List<String> names = Lists.newArrayList("John", null, "Jane", "Adam", "Tom");
  String result = Joiner.on(",").skipNulls().join(names);
  System.out.println(result);
  assertEquals(result, "John,Jane,Adam,Tom");
}

/**
* list轉String,將null變成其他值
*/
@Test
public void whenUseForNull_thenUsed() {
  List<String> names = Lists.newArrayList("John", null, "Jane", "Adam", "Tom");
  String result = Joiner.on(",").useForNull("nameless").join(names);
  System.out.println(result);
  assertEquals(result, "John,nameless,Jane,Adam,Tom");
}

/**
* String to List
*/
@Test
public void whenCreateListFromString_thenCreated() {
  String input = "apple - banana - orange";
  List<String> result = Splitter.on("-").trimResults().splitToList(input);
  System.out.println(result);
  //assertThat(result, contains("apple", "banana", "orange"));
}

/**
* String to Map
*/
@Test
public void whenCreateMapFromString_thenCreated() {
  String input = "John=first,Adam=second";
    Map<String, String> result = Splitter.on(",")
      .withKeyValueSeparator("=")
      .split(input);

   assertEquals("first", result.get("John"));
    assertEquals("second", result.get("Adam"));
}

/**
* 多個字符進行分割
*/
@Test
public void whenSplitStringOnMultipleSeparator_thenSplit() {
  String input = "apple.banana,,orange,,.";
  List<String> result = Splitter.onPattern("[.|,]")
    .omitEmptyStrings()
    .splitToList(input);
  System.out.println(result);
}

/**
* 每隔多少字符進行分割
*/
@Test
public void whenSplitStringOnSpecificLength_thenSplit() {
  String input = "Hello world";
  List<String> result = Splitter.fixedLength(3).splitToList(input);
  System.out.println(result);
}

/**
* 限制分割多少字后停止
*/
@Test
public void whenLimitSplitting_thenLimited() {
  String input = "a,b,c,d,e";
  List<String> result = Splitter.on(",")
            .limit(4)
          .splitToList(input);

  assertEquals(4, result.size());
  System.out.println(result);
}

總結

以上是生活随笔為你收集整理的Guava 工具类之 Splitter的使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。