- 1、本文档共16页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
GUAVA的使用
GUAVA的使用
1 字符串处理
1.1 分割(Splitter)
JDK内建的字符串拆分工具(split)有一些古怪的特性,绝对不要用。比如,它会悄悄丢弃了尾部的分隔符。
Splitter强大安全而且是链式编程。
比如,要分割如下字符串:alex,,45, tianshan road.,201301
l 一般用法
Splitter.on(,)
.trimResults() //移除结果字符串的前导空白和尾部空白
.omitEmptyStrings() //从结果中自动忽略空字符串
.limit(2) //限制拆分出的字符串数量
.split(alex,,45, tianshan road.,201301);
以上代码,看着就舒服,而且还不需要产生很多中间变量。
l 使用正则表达式来描述分隔符
Splitter.onPattern(\\s+)
.split(1 \t 2 3); //结果为:[1, 2, 3]
l 根据长度来拆分字符串
Splitter. fixedLength(3)
.split(1 2 3); //结果为:[1 2, 3]
拆分器返回的是IterableString。
如果想直接返回List,只要使用Lists.newArrayList(splitter.split(string))或类似方法。
重点:splitter实例总是不可变的。
用来定义splitter目标语义的配置方法总会返回一个新的splitter实例。这使得splitter实例都是线程安全的,你可以将其定义为static final常量。(也就是说,可以把split函数之前的代码定义成一个全局静态变量,到处使用)。
1.2 连接(Joiner)
l 一般用法
Joiner joiner = Joiner.on(delimiter).skipNulls();
String res = joiner.join(123, null, foo,bar);
l appendTo到实现了Appendable接口的类中
Joiner joiner = Joiner.on(delimiter).skipNulls();
// 1:append到StringBuilder
StringBuilder stringBuilder = new StringBuilder();
joiner.appendTo(stringBuilder, foo , bar );
// 2:append到输出流
FileWriter writer = new FileWriter(append_text.txt);
joiner.appendTo(writer, foo , bar );
writer.close();
1.3 字符匹配处理(CharMatcher)
它是一个简化版正则工具。
l 按照定义的匹配规则,对字符串进行替换、保留、移除等操作
String lettersAndNumbers = foo989yxbar234;
String retained =
CharMatcher.JAVA_DIGIT.retainFrom(lettersAndNumbers); //保留数字
String removed =
CharMatcher.JAVA_DIGIT.removeFrom(lettersAndNumbers); //移除数字
//通过Or组合多个匹配规则,再进行操作
CharMatcher cm = CharMatcher.JAVA_DIGIT.or(CharMatcher.WHITESPACE);
String retained = cm.retainFrom(foo9 89y xbar 234);//保留数字和空格
CharMatcher的用法总结:
1. 定义匹配字符的规则
2. 使用内置的函数对字符进行处理(移除、保留等)
各处理函数:
? collapseFrom:连续的匹配字符替换为特定字符。比如把多个空格替换成一个
? removeFrom:移除所有匹配字符
? retainFrom:保留匹配字符,移除其他字符
? trimFrom:移除字符序列的前导匹配字符和尾部匹配字符。
? replaceFrom:用特定字符序列替代匹配字符
? matchesAllOf:测试是否字符序列中的所有字符都匹配
2 集合
2.1 不可变集合
不可变集合是不可被修改的集合。集合的数据项是在创建的时候提供,并且在整个生命周期中都不可改变。
不可变集合是极其有益
文档评论(0)