`

guava中的join和split功能

阅读更多
guava库中,包含了很好的join和split的功能,例子如下:

1) 将LIST转换为使用字符串连接的字符串
  
    List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom");
    String result = Joiner.on(",").join(names);
 
    assertEquals(result, "John,Jane,Adam,Tom");
}



2)使用joiner把MAP转成STRING

 


@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);
 
    assertThat(result, containsString("John = 1000"));
    assertThat(result, containsString("Jane = 1500"));
}
 


3 将嵌套的collection join起来
  
@Test
public void whenJoinNestedCollections_thenJoined() {
    List<ArrayList<String>> nested = Lists.newArrayList(
      Lists.newArrayList("apple", "banana", "orange"),
      Lists.newArrayList("cat", "dog", "bird"),
      Lists.newArrayList("John", "Jane", "Adam"));
    String result = Joiner.on(";").join(Iterables.transform(nested,
      new Function<List<String>, String>() {
          @Override
          public String apply(List<String> input) {
              return Joiner.on("-").join(input);
          }
      }));
 
    assertThat(result, containsString("apple-banana-orange"));
    assertThat(result, containsString("cat-dog-bird"));
    assertThat(result, containsString("apple-banana-orange"));
}




4 当使用joiner时候处理null值
   有几个对付NULL值的方法,第一个是skipNulls().

@Test
public void whenConvertListToStringAndSkipNull_thenConverted() {
    List<String> names = Lists.newArrayList("John", null, "Jane", "Adam", "Tom");
    String result = Joiner.on(",").skipNulls().join(names);
 
    assertEquals(result, "John,Jane,Adam,Tom");
}



   或者干脆将null值换掉,就是:
 

@Test
public void whenUseForNull_thenUsed() {
    List<String> names = Lists.newArrayList("John", null, "Jane", "Adam", "Tom");
    String result = Joiner.on(",").useForNull("nameless").join(names);
 
    assertEquals(result, "John,nameless,Jane,Adam,Tom");
}



5 使用splitter方法把string转换为list
   
@Test
public void whenCreateListFromString_thenCreated() {
    String input = "apple - banana - orange";
    List<String> result = Splitter.on("-").trimResults()
                                          .splitToList(input);
 
    assertThat(result, contains("apple", "banana", "orange"));
}



6 使用splitter将string转为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"));
}



7 guava还支持使用多个分隔符来分割字符,比如
  
@Test
public void whenSplitStringOnMultipleSeparator_thenSplit() {
    String input = "apple.banana,,orange,,.";
    List<String> result = Splitter.onPattern("[.|,]")
                                  .omitEmptyStrings()
                                  .splitToList(input);
 
    assertThat(result, contains("apple", "banana", "orange"));
}



8 每隔多少个字符进行分隔
  
@Test
public void whenSplitStringOnSpecificLength_thenSplit() {
    String input = "Hello world";
    List<String> result = Splitter.fixedLength(3).splitToList(input);
 
    assertThat(result, contains("Hel", "lo ", "wor", "ld"));
}



9 还可以让splitter在分割多少个字符后停止分隔,比如
  


 
@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());
    assertThat(result, contains("a", "b", "c", "d,e"));
}
 

1
0
分享到:
评论

相关推荐

    guava-23.0.zip guava.jar guava

    5. **字符串处理**:Guava的Strings类提供了很多实用的方法,如join()用于连接字符串,split()进行复杂的字符串分割等。 6. **IO流操作**:Guava的Files、ByteStreams、CharStreams等类提供了对文件和流的操作,...

    guava-26.0-jre.zip

    Guava是Google为Java平台设计并维护的一个开源库,它提供了许多高级功能和实用工具,极大地增强了Java开发的效率和代码质量。Guava 26.0-jre版本是针对Java运行时环境(JRE)优化的一个特定版本,旨在更好地支持Java...

    Guava常用类库 v33.0.0.zip

    例如,它提供了join、split、strip和isNullOrEmpty等实用方法。 6. **I/O工具**:Guava的Files、ByteStreams和CharStreams类提供了许多方便的静态方法,用于处理文件、字节流和字符流操作,简化了I/O操作。 7. **...

    guava14.0.1jar包

    5. **字符串处理**:Guava的Strings类包含了许多实用的字符串操作方法,如split、join、substringAfter等,简化了对字符串的操作。 6. **I/O操作**:Guava的IO类提供了对文件、输入/输出流的高效处理,包括读写操作...

    google-guava.jar

    Guava的Strings类提供了大量字符串处理函数,如join、split、substringAfter、substringBefore等,使得字符串操作更加简便高效。同时,它还提供了Preconditions类,用于在代码中添加断言,便于调试和预防错误。 六...

    guava 常用API说明

    Guava的Strings类提供了多种处理字符串的方法,如join、split、leftPad、rightPad等,使得字符串操作更加方便。 6. **预定义常量与检查类** Guava提供了Preconditions、Check类,它们包含了一系列静态方法用于...

    google-guava-18.0

    Guava的Strings类提供了大量的静态方法,用于处理和操作字符串,如join()、commonSuffix()、split()等,简化了日常的字符串操作。 6. **预计算与记忆化**: Guava的Cache接口支持预计算和记忆化,可以预先计算并...

    Guava使用培训教程

    `CharMatcher` 是Guava中用于字符匹配和处理的一个强大工具。它不仅能够执行复杂的字符匹配,还能对字符串进行灵活的处理。 ```java public void testCharMatcher() { assertEquals( CharMatcher.DIGIT....

    Guava for java 实例学习

    7. **字符串处理**:Guava提供了Strings类,包含了很多处理和操作字符串的方法,如isEmpty、join和split等。 8. **验证工具**:Validator类允许在运行时检查对象是否满足特定条件,确保程序的正确性。 9. **事件...

    Guava入门指南培训PPT

    Guava是Google推出的一款开源核心类库,它为Java开发者提供了丰富的工具类和实用工具集合。Guava旨在提高编程效率的同时确保代码的高质量和稳定性。它包含了大量针对日常开发过程中常见问题的解决方案。 **特点**:...

    guava-r07.jar

    7. **字符串处理**: Guava的`Strings`类包含很多处理字符串的方法,如`join()`, `split()`, `commonPrefix()`等,可以方便地进行字符串连接、分割和比较。 8. **错误处理**: Guava提供了一些优雅的错误处理机制,如...

    com.google.common.jar的替换包guava-r07.jar

    1. **集合框架**:Guava提供了许多增强的集合类,例如Multiset(多集)、Multimap(多映射)、ImmutableCollection(不可变集合)、BiMap(双向映射)等,这些集合类提供了更强大的功能和更丰富的API。 2. **并发...

    guava相关资源

    总之,Guava是一个强大的工具库,它的各种功能和优化手段可以帮助开发者编写出更加高效、健壮的Java应用。通过使用Guava-19.0.jar、Guava-19.0-sources.jar和Guava-19.0-javadoc.jar,开发者可以充分利用Guava的潜力...

    GuavaGoogle的Java核心库

    6. **字符串处理**:Guava的Strings类包含了许多实用的字符串操作方法,如join()、split()、substringAfter()等,简化了字符串的处理逻辑。 7. **I/O**:Guava提供了Files类,包含了文件操作的各种便捷方法,如...

    Collections源码java-lollipop_external_guava:Java平台的开放源代码库集合

    3. Strings:Strings类提供了许多静态方法,用于字符串的处理,如trim()、join()、split()等,简化了字符串操作。 总结 Guava库以其丰富的集合框架、强大的并发工具和实用的工具类,极大地提升了Java开发的效率和...

    工作11年总结的常用java工具类,上百种方法,开发中绝对用得到

    7. **Spring Framework**: Spring框架中的`BeanUtils` 和 `CollectionsUtils` 提供了对象复制和集合操作的便利,而`Assert` 类则提供了断言功能。 8. **Apache Commons Collections**: 提供了对Java集合框架的扩展...

    StringUtils NumberUtils DateUtils

    它提供了大量的静态方法,帮助开发者执行各种字符串操作,如检查空值(isBlank, isEmpty)、比较(equals, equalsIgnoreCase)、替换(replace, replaceAll)、分割(split)和连接(join)等。这些方法在处理字符串...

    GuestName处理方法

    这些库提供了更多的字符串操作功能,如split、join、capitalize等。 总的来说,GuestName处理方法涉及到数据验证、格式化、存储和显示等多个方面。在Java中,我们可以通过字符串操作、正则表达式和自定义方法来实现...

    toolkit:Java工具箱(常用工具,省时省力)

    6. **字符串处理**:Guava的Strings类提供了丰富的字符串处理方法,如join()、split()、isBlank()等,可以更方便地进行字符串的连接、分割和验证。 7. **预计算与惰性初始化**:Guava的 Suppliers 和 Suppliers....

    java常用工具类整理

    本文将详细介绍 Spring 及 Guava 相关工具类的使用说明和代码 demo。这些工具类都是 Java 开发中常用的实用工具,可以帮助开发者快速高效地完成各种任务。 一、Spring 工具类 1. org.springframework.util....

Global site tag (gtag.js) - Google Analytics