guava中的Splitter
来源:互联网 发布:mysql 5.7修改root密码 编辑:程序博客网 时间:2024/04/30 12:32
来源:
java.lang.Object
com.google.common.base.Splitter
字符串分割器,顾名思义根据规则将输入的字符串进行分割输出。首先来个例子:
Splitter.on(',').split("foo,bar,qux"),结果为: "foo"
, "bar"
,"qux",结果是以迭代器的形式返回,当然,后续会说明,还会有其他的形式。
Splitter可以通过添加过滤器,从而得到自己想要的结果,例如:
默认情况下:
Splitter.on(',').split(" foo,,, bar ,"),返回的是[" foo", "", "", " bar ", ""]。
通过添加过滤器后:
private static final Splitter MY_SPLITTER = Splitter.on(',') .trimResults() .omitEmptyStrings();
MY_SPLITTER.split("foo,,, bar ,"),返回的结果:["foo", "bar"]
这里需要注意的是:Splitter实例是immutable,通过已经包含了配置方法返回的Splitter,重新配置是无效的。
例:Splitter splitter = Splitter.on('/'); splitter.trimResults();
return splitter.split("wrong / wrong / wrong");这种是无效的。Splitter也提供了丰富的分割器方法和过滤器方法:
static Splitter
fixedLength(int length)
Returns a splitter that divides strings into pieces of the given length.Splitter
limit(int limit)
Returns a splitter that behaves equivalently tothis
splitter but stops splitting after it reaches the limit.Splitter
omitEmptyStrings()
Returns a splitter that behaves equivalently tothis
splitter, but automatically omits empty strings from the results.static Splitter
on(char separator)
Returns a splitter that uses the given single-character separator.static Splitter
on(CharMatcher separatorMatcher)
Returns a splitter that considers any single character matched by the givenCharMatcher
to be a separator.static Splitter
on(Pattern separatorPattern)
Returns a splitter that considers any subsequence matchingpattern
to be a separator.static Splitter
on(String separator)
Returns a splitter that uses the given fixed string as a separator.static Splitter
onPattern(String separatorPattern)
Returns a splitter that considers any subsequence matching a given pattern (regular expression) to be a separator.Iterable<String>
split(CharSequence sequence)
Splitssequence
into string components and makes them available through anIterator
, which may be lazily evaluated.List<String>
splitToList(CharSequence sequence)
Splitssequence
into string components and returns them as an immutable list.Splitter
trimResults()
Returns a splitter that behaves equivalently tothis
splitter, but automatically removes leading and trailing whitespace from each returned substring; equivalent totrimResults(CharMatcher.WHITESPACE)
.Splitter
trimResults(CharMatcher trimmer)
Returns a splitter that behaves equivalently tothis
splitter, but removes all leading or trailing characters matching the givenCharMatcher
from each returned substring.Splitter.MapSplitter
withKeyValueSeparator(char separator)
Returns aMapSplitter
which splits entries based on this splitter, and splits entries into keys and values using the specified separator.Splitter.MapSplitter
withKeyValueSeparator(Splitter keyValueSplitter)
Returns aMapSplitter
which splits entries based on this splitter, and splits entries into keys and values using the specified key-value splitter.Splitter.MapSplitter
withKeyValueSeparator(String separator)
Returns a方法的详细说明:MapSplitter
which splits entries based on this splitter, and splits entries into keys and values using the specified separator.Method Detail
on
public static Splitter on(char separator)
Returns a splitter that uses the given single-character separator. For example,Splitter.on(',').split("foo,,bar")
returns an iterable containing["foo", "", "bar"]
.- Parameters:
separator
- the character to recognize as a separator- Returns:
- a splitter, with default settings, that recognizes that separator
on
public static Splitter on(CharMatcher separatorMatcher)
Returns a splitter that considers any single character matched by the givenCharMatcher
to be a separator. For example,Splitter.on(CharMatcher.anyOf(";,")).split("foo,;bar,quux")
returns an iterable containing["foo", "", "bar", "quux"]
.- Parameters:
separatorMatcher
- aCharMatcher
that determines whether a character is a separator- Returns:
- a splitter, with default settings, that uses this matcher
on
public static Splitter on(String separator)
Returns a splitter that uses the given fixed string as a separator. For example,Splitter.on(", ").split("foo, bar,baz")
returns an iterable containing["foo", "bar,baz"]
.- Parameters:
separator
- the literal, nonempty string to recognize as a separator- Returns:
- a splitter, with default settings, that recognizes that separator
on
@GwtIncompatible(value="java.util.regex")public static Splitter on(Pattern separatorPattern)
Returns a splitter that considers any subsequence matchingpattern
to be a separator. For example,Splitter.on(Pattern.compile("\r?\n")).split(entireFile)
splits a string into lines whether it uses DOS-style or UNIX-style line terminators.- Parameters:
separatorPattern
- the pattern that determines whether a subsequence is a separator. This pattern may not match the empty string.- Returns:
- a splitter, with default settings, that uses this pattern
- Throws:
IllegalArgumentException
- ifseparatorPattern
matches the empty string
onPattern
@GwtIncompatible(value="java.util.regex")public static Splitter onPattern(String separatorPattern)
Returns a splitter that considers any subsequence matching a given pattern (regular expression) to be a separator. For example,Splitter.onPattern("\r?\n").split(entireFile)
splits a string into lines whether it uses DOS-style or UNIX-style line terminators. This is equivalent toSplitter.on(Pattern.compile(pattern))
.- Parameters:
separatorPattern
- the pattern that determines whether a subsequence is a separator. This pattern may not match the empty string.- Returns:
- a splitter, with default settings, that uses this pattern
- Throws:
PatternSyntaxException
- ifseparatorPattern
is a malformed expressionIllegalArgumentException
- ifseparatorPattern
matches the empty string
fixedLength
public static Splitter fixedLength(int length)
Returns a splitter that divides strings into pieces of the given length. For example,Splitter.fixedLength(2).split("abcde")
returns an iterable containing["ab", "cd", "e"]
. The last piece can be smaller thanlength
but will never be empty.Exception: for consistency with separator-based splitters,
split("")
does not yield an empty iterable, but an iterable containing""
. This is the only case in whichIterables.size(split(input))
does not equalIntMath.divide(input.length(), length, CEILING)
. To avoid this behavior, useomitEmptyStrings
.- Parameters:
length
- the desired length of pieces after splitting, a positive integer- Returns:
- a splitter, with default settings, that can split into fixed sized pieces
- Throws:
IllegalArgumentException
- iflength
is zero or negative
omitEmptyStrings
@CheckReturnValuepublic Splitter omitEmptyStrings()
Returns a splitter that behaves equivalently tothis
splitter, but automatically omits empty strings from the results. For example,Splitter.on(',').omitEmptyStrings().split(",a,,,b,c,,")
returns an iterable containing only["a", "b", "c"]
.If either
trimResults
option is also specified when creating a splitter, that splitter always trims results first before checking for emptiness. So, for example,Splitter.on(':').omitEmptyStrings().trimResults().split(": : : ")
returns an empty iterable.Note that it is ordinarily not possible for
split(CharSequence)
to return an empty iterable, but when using this option, it can (if the input sequence consists of nothing but separators).- Returns:
- a splitter with the desired configuration
limit
@CheckReturnValuepublic Splitter limit(int limit)
Returns a splitter that behaves equivalently tothis
splitter but stops splitting after it reaches the limit. The limit defines the maximum number of items returned by the iterator.For example,
Splitter.on(',').limit(3).split("a,b,c,d")
returns an iterable containing["a", "b", "c,d"]
. When omitting empty strings, the omitted strings do no count. Hence,Splitter.on(',').limit(3).omitEmptyStrings().split("a,,,b,,,c,d")
returns an iterable containing["a", "b", "c,d"
. When trim is requested, all entries, including the last are trimmed. HenceSplitter.on(',').limit(3).trimResults().split(" a , b , c , d ")
results in @{code ["a", "b", "c , d"]}.- Parameters:
limit
- the maximum number of items returns- Returns:
- a splitter with the desired configuration
- Since:
- 9.0
trimResults
@CheckReturnValuepublic Splitter trimResults()
Returns a splitter that behaves equivalently tothis
splitter, but automatically removes leading and trailing whitespace from each returned substring; equivalent totrimResults(CharMatcher.WHITESPACE)
. For example,Splitter.on(',').trimResults().split(" a, b ,c ")
returns an iterable containing["a", "b", "c"]
.- Returns:
- a splitter with the desired configuration
trimResults
@CheckReturnValuepublic Splitter trimResults(CharMatcher trimmer)
Returns a splitter that behaves equivalently tothis
splitter, but removes all leading or trailing characters matching the givenCharMatcher
from each returned substring. For example,Splitter.on(',').trimResults(CharMatcher.is('_')).split("_a ,_b_ ,c__")
returns an iterable containing["a ", "b_ ", "c"]
.- Parameters:
trimmer
- aCharMatcher
that determines whether a character should be removed from the beginning/end of a subsequence- Returns:
- a splitter with the desired configuration
split
public Iterable<String> split(CharSequence sequence)
Splitssequence
into string components and makes them available through anIterator
, which may be lazily evaluated. If you want an eagerly computedList
, usesplitToList(CharSequence)
.- Parameters:
sequence
- the sequence of characters to split- Returns:
- an iteration over the segments split from the parameter.
splitToList
@Betapublic List<String> splitToList(CharSequence sequence)
Splitssequence
into string components and returns them as an immutable list. If you want anIterable
which may be lazily evaluated, usesplit(CharSequence)
.- Parameters:
sequence
- the sequence of characters to split- Returns:
- an immutable list of the segments split from the parameter
- Since:
- 15.0
withKeyValueSeparator
@CheckReturnValue@Betapublic Splitter.MapSplitter withKeyValueSeparator(String separator)
Returns aMapSplitter
which splits entries based on this splitter, and splits entries into keys and values using the specified separator.- Since:
- 10.0
withKeyValueSeparator
@CheckReturnValue@Betapublic Splitter.MapSplitter withKeyValueSeparator(char separator)
Returns aMapSplitter
which splits entries based on this splitter, and splits entries into keys and values using the specified separator.- Since:
- 14.0
withKeyValueSeparator
@CheckReturnValue@Betapublic Splitter.MapSplitter withKeyValueSeparator(Splitter keyValueSplitter)
Returns aMapSplitter
which splits entries based on this splitter, and splits entries into keys and values using the specified key-value splitter.- Since:
- 10.0
- guava中的Splitter
- guava Splitter
- guava Splitter
- Guava学习之Splitter
- 【Guava】Joiner、Splitter源码
- Guava学习之Splitter
- Guava base -- Splitter
- guava之Splitter
- Google Guava Splitter
- Guava使用之Splitter
- guava的String之Splitter
- Google Guava的splitter用法
- guava之Joiner 和 Splitter
- guava之Joiner 和 Splitter
- guava之Joiner 和 Splitter
- 【Java8】Guava——Splitter
- guava的String之Splitter
- Guava字符串处理Joiner、Splitter
- jquery的text()、html() 以及 val()
- 【黑马程序员】OC-Foundation框架—NSMutableString
- Python学习小记
- 【Leet Code】26. Remove Duplicates from Sorted Array---Easy
- MYSQL多主同步,负载均衡
- guava中的Splitter
- 三个简单的H5/Egret/JavaScript面试题
- C++堆栈区别
- 短信发送器
- URI和URL的区别
- linux下安装RabbitMQ消息机制
- CentOS7 初次安装记录(五)配置 apache 虚拟主机
- 在SpringMVC框架下提供dubbo服务(提供者)
- bat-PUSHD和POPD