guava是个风火轮之基础工具(3)-java开发java经验技巧

guava是个风火轮之基础工具(3)-java开发java经验技巧

ID:30768013

大小:74.50 KB

页数:6页

时间:2019-01-03

guava是个风火轮之基础工具(3)-java开发java经验技巧_第1页
guava是个风火轮之基础工具(3)-java开发java经验技巧_第2页
guava是个风火轮之基础工具(3)-java开发java经验技巧_第3页
guava是个风火轮之基础工具(3)-java开发java经验技巧_第4页
guava是个风火轮之基础工具(3)-java开发java经验技巧_第5页
资源描述:

《guava是个风火轮之基础工具(3)-java开发java经验技巧》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Guava是个风火轮Z基础工具(3)-编程开发技术Guava是个风火轮之基础工具(3)原文出处:潘家邦的博客・、F4a刖5Guava是Java开发者的好朋友。虽然我在开发屮使用Guava很长时间了,GuavaAPI的身影遍及我写的生产代码的每个角落,但是我用到的功能只是Guava的功能集中一个少的可怜的真子集,更别说我一直没有吋间认真的去挖掘Guava的功能,没有时间去学习Guava的实现。直到最近,我开始阅读^GettingStartedwithGoogleGuava,感觉有必耍将我学习和使用Guava的一些东四记录下来。CharsetsCharsets是一个常量工厂,给出了6个九刖

2、承诺了全平台支持的字符集,类似的静态工厂在Apache的类库中也有提供。如果没有静态变量,我们要么使用Charset#forName方法,传入一个字符串来获取指定的字符集,要么自己定义一个类似的工厂类。使用CharsetWforName的问题就在于用户需要关注入参字符串的拼写,一旦拼写错误就会出现意料之外的事情。到了7中,JDK提供了一个官方的静态工厂类java.nio.charset.StandardCharsets,Guava也推荐使用Java7及以上的用户使用StandardCharsetsoStrings在Guava屮,以名词的复数形式命名的类,基本上都是静态工厂。String

3、s就是这么一个用来操作字符串的方法工厂。Strings提供了空指针、空字符串的判断和互换方法。Strings.isNullOrEmpty(,,,z);//trueStrings.nullToEmpty(null);//〃〃Strings・nullToEmpty(^a^);//"eTStrings・emptyToNull(““);//nullStrings.emptyToNull(,za/z);//〃/对于防御式编程,可以在拿到字符串入参之后,调用一下StringsttnullToEmpty将可能的空指针变成空字符串,然后也就不用担心字符串引发的NPE,或者字符串拼接吋候出现的“null

4、”了。Strings还提供了常见的字符申前后拼接同一个字符直到达到某个长度,或者重复拼接自身n次。Strings.padStart(〃7〃,3,'O');//"007"Strings.padStart("2010",3,'O');//〃2010"Strings.padEnd(z,4.〃,5,'O');//〃4・000〃Strings.padEndC,2010,/,3,'!');//〃2010〃Strings・repeat(,,hcy,/,3);//"hcyhcyhcy"Strings的最后一组功能是查找两个字符串的公共前缀、后缀。Strings.commonPrefix(,,aaab,

5、/,〃aac〃)Strings.commonSufIlx(aaac,aac);//aac源码分析源码來口Guava18.0oStrings类的源码大约240行,大部分的函数实现中规屮矩,值得关注的是Strings#repeato代码注释赫然写着,如果你修改了这里的代码,必须同步更新Benchmark!看来这段代码是经过极致优化了的,让我不禁想起当年楼教主比赛吋“我去上个测所,不要动键盘”的霸气。publicstaticStringrepeat(Stringstring,intcount){chcckNotNu11(string);//eagerforGWT・if(count<=1){c

6、heckArgument(count>二0,"invalidcount:%s〃,count);return(count==0)?〃〃:string;}//IFYOUMODIFYTHECODEHERE,youmustupdateStringsRcpcatBcnchmarkfinalintlen=string,length();finallonglongSize二(long)len*(long)count;finalintsize=(int)longSize;if(size!=IongSize){thrownewArrayIndcxOutOfBoundsExccption(''Requir

7、edarraysizetoolarge:"+longSize);}finalchar[]array=newchar[size];string.getChars(0,len,array,0);intn;for(n=len;n

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。