com.google.common.base ** Splitter**
拆分字符串。 该类的实例是不可变的。构造方法对于引用的实例没有效果, 必须使用构造方法返回的splitter实例。
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,用来拆分字符串。
@GwtIncompatible // java.util.regex
public static Splitter onPattern(String separatorPattern)
返回一个splitter拆分字符串。用正则表达式作为参数。
public static Splitter fixedLength(final int length)
按给定长度length拆分字符串。Splitter.fixedLength(2).split("abcde")
返回["ab", "cd", "e"]
public Splitter omitEmptyStrings()
拆分字符串后,自动去掉空的字符串。
public Splitter limit(int limit)
拆分指定的次数之后不拆了。
public Splitter trimResults()
public Splitter trimResults(CharMatcher trimmer)
拆了之后trim一下空格或者其他指定的字符。
public Iterable<String> split(final CharSequence sequence)
拆
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();
}