# 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:用于控制拆分的结果个数