全路徑名:
com.google.common.base
** Splitter**
聲明
@GwtCompatible(emulated=true)
public final class Splitter extends Object
簡(jiǎn)介
拆分字符串。
該類的實(shí)例是不可變的。構(gòu)造方法對(duì)于引用的實(shí)例沒有效果, 必須使用構(gòu)造方法返回的splitter實(shí)例。
方法
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)
返回一個(gè)splitter,用來拆分字符串。
onPattern
@GwtIncompatible // java.util.regex
public static Splitter onPattern(String separatorPattern)
返回一個(gè)splitter拆分字符串。用正則表達(dá)式作為參數(shù)。
fixedLength
public static Splitter fixedLength(final int length)
按給定長(zhǎng)度length拆分字符串。Splitter.fixedLength(2).split("abcde")返回["ab", "cd", "e"]
omitEmptyStrings
public Splitter omitEmptyStrings()
拆分字符串后,自動(dòng)去掉空的字符串。
limit
public Splitter limit(int limit)
拆分指定的次數(shù)之后不拆了。
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)
基于這個(gè)splitter返回一個(gè)MapSplitter,將entries拆成keys和values。
例子
public class SplitterTest {
public static void main(String[] args) {
String string = "a,,b1, c,,,d";
// 默認(rèn)拆
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]
// 拆之后去掉數(shù)字
result = Splitter.on(',').omitEmptyStrings().trimResults(CharMatcher.digit()).split(string);
System.out.println(result);// [a, b, c, d]
}
}
注意:
例子中的輸出逗號(hào)之后有空格是因?yàn)镾plitter中的split方法返回的Iterable<String>被重寫了toString方法:
@Override
public String toString() {
return Joiner.on(", ")
.appendTo(new StringBuilder().append('['), this)
.append(']')
.toString();
}