全路径名:
com.google.common.base
** Splitter**
声明
@GwtCompatible(emulated=true)
public final class Splitter extends Object
简介
拆分字符串。
该类的实例是不可变的。构造方法对于引用的实例没有效果, 必须使用构造方法返回的splitter实例。
方法
on
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
@GwtIncompatible // java.util.regex
public static Splitter onPattern(String separatorPattern)
返回一个splitter拆分字符串。用正则表达式作为参数。
fixedLength
public static Splitter fixedLength(final int length)
按给定长度length拆分字符串。Splitter.fixedLength(2).split("abcde")
返回["ab", "cd", "e"]
omitEmptyStrings
public Splitter omitEmptyStrings()
拆分字符串后,自动去掉空的字符串。
limit
public Splitter limit(int limit)
拆分指定的次数之后不拆了。
trimResults
public Splitter trimResults()
public Splitter trimResults(CharMatcher trimmer)
拆了之后trim一下空格或者其他指定的字符。
split
public Iterable<String> split(final CharSequence sequence)
拆
withKeyValueSeparator
public MapSplitter withKeyValueSeparator(String separator)
public MapSplitter withKeyValueSeparator(char separator)
public MapSplitter withKeyValueSeparator(Splitter keyValueSplitter)
基于这个splitter返回一个MapSplitter,将entries拆成keys和values。
例子
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方法:
@Override
public String toString() {
return Joiner.on(", ")
.appendTo(new StringBuilder().append('['), this)
.append(']')
.toString();
}