前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Guava-1.20类Splitter

Guava-1.20类Splitter

作者头像
悠扬前奏
发布2019-05-31 10:27:08
9140
发布2019-05-31 10:27:08
举报
文章被收录于专栏:悠扬前奏的博客

全路径名:

com.google.common.base ** Splitter**

简介

拆分字符串。 该类的实例是不可变的。构造方法对于引用的实例没有效果, 必须使用构造方法返回的splitter实例。

方法

on
代码语言:javascript
复制
public static Splitter on(char separator)
public static Splitter on(final CharMatcher separatorMatcher)
public static Splitter on(final String separator)

@GwtIncompatible // java.util.regex
  public static Splitter on(Pattern separatorPattern)

 private static Splitter on(final CommonPattern separatorPattern)

返回一个splitter,用来拆分字符串。

onPattern
代码语言:javascript
复制
 @GwtIncompatible // java.util.regex
  public static Splitter onPattern(String separatorPattern)

返回一个splitter拆分字符串。用正则表达式作为参数。

fixedLength
代码语言:javascript
复制
public static Splitter fixedLength(final int length)

按给定长度length拆分字符串。Splitter.fixedLength(2).split("abcde")返回["ab", "cd", "e"]

omitEmptyStrings
代码语言:javascript
复制
public Splitter omitEmptyStrings() 

拆分字符串后,自动去掉空的字符串。

limit
代码语言:javascript
复制
public Splitter limit(int limit)

拆分指定的次数之后不拆了。

trimResults
代码语言:javascript
复制
public Splitter trimResults()
public Splitter trimResults(CharMatcher trimmer)

拆了之后trim一下空格或者其他指定的字符。

split
代码语言:javascript
复制
public Iterable<String> split(final CharSequence sequence)

withKeyValueSeparator
代码语言:javascript
复制
public MapSplitter withKeyValueSeparator(String separator)
public MapSplitter withKeyValueSeparator(char separator)
public MapSplitter withKeyValueSeparator(Splitter keyValueSplitter)

基于这个splitter返回一个MapSplitter,将entries拆成keys和values。

例子

代码语言:javascript
复制
public class SplitterTest {
    public static void main(String[] args) {
        String string = "a,,b1,    c,,,d";
        // 默认拆
        Iterable<String> result = Splitter.on(',').split(string);
        System.out.println(result);// [a, , b1,     c, , , d]
        // 拆之后去掉空的
        result = Splitter.on(',').omitEmptyStrings().split(string);
        System.out.println(result);// [a, b1,     c, d]
        // 拆之后去掉头尾空格
        result = Splitter.on(',').trimResults().split(string);
        System.out.println(result);// [a, , b1, c, , , d]
        // 拆之后去掉空的,还去掉空格
        result = Splitter.on(',').omitEmptyStrings().trimResults().split(string);
        System.out.println(result);// [a, b1, c, d]
        // 拆之后去掉数字
        result = Splitter.on(',').omitEmptyStrings().trimResults(CharMatcher.digit()).split(string);
        System.out.println(result);// [a, b,     c, d]
    }
}

注意: 例子中的输出逗号之后有空格是因为Splitter中的split方法返回的Iterable<String>被重写了toString方法:

代码语言:javascript
复制
@Override
      public String toString() {
        return Joiner.on(", ")
            .appendTo(new StringBuilder().append('['), this)
            .append(']')
            .toString();
      }
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.04.28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 全路径名:
  • 简介
  • 方法
    • on
      • onPattern
        • fixedLength
          • omitEmptyStrings
            • limit
              • trimResults
                • split
                  • withKeyValueSeparator
                  • 例子
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档