Splitter
返回:Guava
java 中关于分词的工具类会有一些古怪的行为。例如:String.split 函数会悄悄地丢弃尾部分割符,而 StringTokenizer 处理5个空格字符串,结果将会什么都没有。
工厂函数
| 方法 | 描述 | 例子 |
Splitter.on(char) | 基于特定字符划分 | Splitter.on(';') |
Splitter.on(CharMatcher) | 基于某些类别划分 | Splitter.on(';') |
Splitter.on(String) | 基于字符串划分 | Splitter.on(CharMatcher.BREAKING_WHITESPACE)Splitter.on(CharMatcher.anyOf(";,.")) |
Splitter.on(Pattern)Splitter.onPattern(String) | 基于正则表达式划分 | Splitter.on(", ") |
Splitter.fixedLength(int) | 按指定长度划分,最后部分可以小于指定长度但不能为空 | Splitter.fixedLength(3) |
修改器
| 方法 | 描述 | 例子 |
| omitEmptyStrings() | 移去结果中的空字符串 | Splitter.on(',').omitEmptyStrings().split("a,,c,d") 返回 "a", "c", "d" |
| trimResults() | 将结果中的空格删除,等价于trimResults(CharMatcher.WHITESPACE) | Splitter.on(',').trimResults().split("a, b, c, d") 返回 "a", "b", "c", "d" |
| trimResults(CharMatcher) | 移除匹配字符 | Splitter.on(',').trimResults(CharMatcher.is('')).split("a ,b ,c_") 返回 "a ", "b ", "c" |
| limit(int) | 达到指定数目后停止字符串的划分 | Splitter.on(',').limit(3).split("a,b,c,d") 返回 "a", "b", "c,d" |
成员变量
CharMatcher trimmer:用于描述删除拆分结果的前后指定字符的策略。 boolean omitEmptyStrings:用于控制是否删除拆分结果中的空字符串。 Strategy strategy:用于帮助实现策略模式。 int limit:用于控制拆分的结果个数