Guava全文介绍地址:Google Guava

这次主要介绍是的是com.google.common.base.Splitter。我想做为一个程序员我们每天和String打交道的时候是会占很多时间的吧。字符串以一些分隔符标记分隔开也是我们工作中经常要遇到的问题。但是用Guava--Splitter,它会提取重叠子字符串的输入字符串,通常是通过识别表象的分隔符序列。这个分隔符可以指定单个字符,固定字符串,正则表达式或CharMatcher实例。或者,而不是使用一个分离器,分配器可以提取相邻给定固定长度的子字符串。

它的所有方法如下:

static Splitter  fixedLength(int length)
返回一个splitter对象把目标字符串按字符长度分隔Splitter limit(int limit)
返回一个splitter对象,但它停止分隔当它到达limit的时候。
Returns a splitter that behaves equivalently to this splitter but stops splitting after it reaches the limit.Splitter omitEmptyStrings()
返回一个splitter对象,但是返回结果会删除空字符static Splitter  on(char separator)
返回一个splitter对象,通过给定的单个字符进行分隔static Splitter on(CharMatcher separatorMatcher)
返回一个splitter对象,通过给定的CharMatcher进行分隔static Splitter  on(Pattern separatorPattern)
返回一个splitter对象,通过给定的Pattern进行分隔static Splitter  on(String separator)
返回一个splitter对象,通过给定的字符串进行分隔static Splitter  onPattern(String separatorPattern)
返回一个splitter对象,认为任何子序列匹配一个给定的模式(正则表达式)是一个分隔符。Iterable<String> split(CharSequence sequence)
将序列分为字符串组件和使他们可以通过迭代器List<String> splitToList(CharSequence sequence)
将序列分为字符串组件作为一个不可变的listSplitter trimResults()
返回一个splitter对象,但是为移除返回list对象中每个对象前后的空白,相当于trimResults(CharMatcher.WHITESPACE)Splitter trimResults(CharMatcher trimmer)
返回一个splitter对象,但是为移除返回list对象中每个对象前后与给定的CharMatcher对应的字符Splitter.MapSplitter withKeyValueSeparator(char separator)
返回一个MapSplitterce,通过指定单个的cahr分解成entries,然后再通过entry中的特定字符分隔成key-value形式Map。是Join.withKeyValueSeparator()的逆运算Splitter.MapSplitter withKeyValueSeparator(Splitter keyValueSplitter)
返回一个MapSplitterce,通过指定Splitter分解成entries,然后再通过entry中的特定字符分隔成key-value形式的Map。是Join.withKeyValueSeparator()的逆运算Splitter.MapSplitter withKeyValueSeparator(String separator)
返回一个MapSplitterce,通过指定String分解成entries,然后再通过entry中的特定字符分隔成key-value形式的Map。是Join.withKeyValueSeparator()的逆运算

然后大家就可以对照下面的例子来理解这个类的用法了。

public class SplitterTest {@Testpublic void testSplitter() {String startSring = "Washington D.C=Redskins#New York City=Giants#Philadelphia=Eagles#Dallas=Cowboys";Map<String,String> testMap = Maps.newLinkedHashMap();testMap.put("Washington D.C","Redskins");testMap.put("New York City","Giants");testMap.put("Philadelphia","Eagles");testMap.put("Dallas","Cowboys");Splitter.MapSplitter mapSplitter = Splitter.on("#").withKeyValueSeparator("=");Map<String,String> splitMap = mapSplitter.split(startSring);assertThat(testMap,is(splitMap));}@Testpublic void testSplitPattern(){String pattern = "\\d+";String text = "foo123bar45678baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(Pattern.compile(pattern)).split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}@Testpublic void testSplitStringPattern(){String pattern = "\\d+";String text = "foo123bar45678baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.onPattern(pattern).split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}@Testpublic void testSplit(){String delimiter = "&";String text = "foo&bar&baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}@Testpublic void testSplitTrimResults(){String delimiter = "&";String text = "foo   &  bar&   baz  ";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).trimResults().split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}@Testpublic void testSplitTrimResultsII(){String delimiter = "&";String text = "1foo&bar2&2baz3";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).trimResults(CharMatcher.JAVA_DIGIT).split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}@Testpublic void testSplitOnCharacter(){char delimiter = '|';String text = "foo|bar|baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}@Testpublic void testSplitOnCharacterKeepMissing(){char delimiter = '|';String text = "foo|bar|||baz";String[] expected = new String[]{"foo","bar","","","baz"};Iterable<String> values = Splitter.on(delimiter).split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}@Testpublic void testSplitOnCharacterOmitMissing(){char delimiter = '|';String text = "foo|bar|||baz";String[] expected = new String[]{"foo","bar","baz"};Iterable<String> values = Splitter.on(delimiter).omitEmptyStrings().split(text);int index = 0;for (String value : values) {assertThat(value,is(expected[index++]));}}
}

Guava base -- Splitter相关推荐

  1. Guava入门~Splitter

    String.split()问题:中间保留,最后丢弃 String commaSeparatedString = "Foo,,Bar,,Baz,,,"; String[] word ...

  2. Storm构建分布式实时处理应用初探(转)

    最近利用闲暇时间,又重新研读了一下Storm.认真对比了一下Hadoop,前者更擅长的是,实时流式数据处理,后者更擅长的是基于HDFS,通过MapReduce方式的离线数据分析计算.对于Hadoop, ...

  3. guava的String之Splitter

    1.常用方法 摘自官网的部分常用方法说明. Base Factories Method Description Example Splitter.on(char) Split on occurrenc ...

  4. 三、guava splitter

    splitter工具可以按照分隔符拆分字符串: 示例: package org.example.model;import com.google.common.base.Splitter; import ...

  5. Google Guava 库用法整理

    http://macrochen.iteye.com/blog/737058 参考: http://codemunchies.com/2009/10/beautiful-code-with-googl ...

  6. Guava的介绍与使用示例

    Guava是什么 Guava,翻译是番石榴.这里指的是Google Core Libraries for Java, 即Google开发的Java核心库的扩展. 其提供新的集合类型(比如multima ...

  7. Google Guava 实战之字符串处理篇

    <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifac ...

  8. google guava的基础部分Demo实例(注释详尽)

    2019独角兽企业重金招聘Python工程师标准>>> package org.loda.guava;import java.io.UnsupportedEncodingExcept ...

  9. Guava学习笔记:Ordering犀利的比较器

    2019独角兽企业重金招聘Python工程师标准>>> Ordering是Guava类库提供的一个犀利强大的比较器工具,Guava的Ordering和JDK Comparator相比 ...

  10. com.google.guava maven依赖

    com.google.guava/guava 共有41个版本,总共被引用了20095次 被引用次数最多的版本是14.0.1 ,其被引用次数为3919 ,查看引用次数柱状图 . Guava is a s ...

最新文章

  1. 方法的运用_企业如何运用论坛做营销,千享科技分享技巧方法
  2. P1086 花生采摘
  3. 结构体数组与指针习题
  4. C# 发送Http请求 - WebClient类
  5. Linux查看实时带宽流量情况
  6. 理想的计算机职业作文100,我的理想作文100字(通用30篇)
  7. JavaScript中属性name与方法名不能相同
  8. robot framework数据库操作
  9. 计算机网络英文介绍,计算机网络英文自我介绍
  10. springboot 禁用tomcat_Spring Boot 面试的十个问题
  11. 在编写mini2440 helloworld驱动遇到的问题
  12. MapReduce工作机制详解
  13. 10亿级流数据交互查询,为什么抛弃MySQL选择VoltDB?
  14. 进销存系统怎么部署到自己服务器,进销存软件云存储和自建服务器
  15. windows 使用docker构建镜像
  16. FFmpeg之视频转码
  17. elasticsearch分片分配和路由配置
  18. c语言maxval函数,fortran语言常用函数
  19. 南非NRCS认证简介
  20. 签好软件定制开发合同,需要注意什么

热门文章

  1. html写樱花树,写樱花树的作文
  2. 如何一条命令查询笔记本电池损耗情况-生成报告
  3. 【IEEE】IEEE论文接收后proof(校样)全流程实例讲解
  4. 蓝牙车载 linux,《基于嵌入式Linux蓝牙在车载电子系统中的应用》.pdf
  5. 微信开发工具实现订阅消息功能
  6. becon帧 wifi_构造并发送Beacon帧以伪造任意WiFi热点
  7. 用html和css轻松实现康奈尔笔记(5R笔记)模板
  8. linux服务器硬件配置,linux服务器硬件配置要求是多少
  9. trivial destructor
  10. PTA:设计一个风扇Fan类 (20 分)