Guava

2017/04/01 Java

初次用到guava,是用Joiner的方法去解决一个字符串拼接的问题。然后见识到了Guava是一个功能强大的类库。Guava是Google的一个开源项目。有集合、缓存 、原生类型支持、并发库、通用注解、字符串处理、I/O等类库。


连接器Joiner

Google Guava提供了Joiner类专门的用来拼接String。

  • 处理用分隔符把字符串序列连接起来也可能会遇上不必要的麻烦。如果字符串序列中含有null,那连接操作会更难。Fluent风格的Joiner让连接字符串更简单
      Joiner joiner = Joiner.on(",").skipNulls();
      return joiner.join("a", null, "b", "c");
    

    上述代码返回”a,b,c”

  • Joiner.on(“,”).join(Arrays.asList(1, 5, 7)); // returns “1,5,7”

拆分器Splitter

JDK内建的字符串拆分工具有一些古怪的特性。比如,String.split悄悄丢弃了尾部的分隔符。 问题:”,a,,b,”.split(“,”)返回?

  • “”, “a”, “”, “b”, “”
  • null, “a”, null, “b”, null
  • “a”, null, “b”
  • “a”, “b”
  • 以上都不对
  • 正确答案是5:””, “a”, “”, “b”。只有尾部的空字符串被忽略了。 Splitter使用令人放心的、直白的流畅API模式对这些混乱的特性作了完全的掌控。
Splitter.on(',').trimResults().omitEmptyStrings().split("foo,bar,,   qux");

上述代码返回Iterable,其中包含”foo”、”bar”和”qux”。Splitter可以被设置为按照任何模式、字符、字符串或字符匹配器拆分。

String str = "1,2,3,4,5,6,7";
String[] arr = Splitter.on(",").splitToList(str).toArray(new String[] {});

上述代码得到String[].

Multimap

Search

    Table of Contents