使用现成的库的原因, 既能减少自己开发所带来的bug, 同时又大大提高了开发效率, 当然这也是Java语言流行的一个原因----拥有海量的开源包。
本篇从Guava基础工具入手开始介绍这个广泛使用的库:
package com.wenniuwuren.guava; import java.io.UnsupportedEncodingException; import java.util.Date; import java.util.HashMap; import com.google.common.base.CharMatcher; import com.google.common.base.Charsets; import com.google.common.base.Objects; import com.google.common.base.Strings; import com.google.common.collect.ComparisonChain; import sun.org.mozilla.javascript.internal.ast.TryStatement; /** * * @ClassName: WorkingWithStrings * @Description: 对字符串的操作 * @author wenniuwuren * @date 2015-5-20 上午11:33:59 * */ public class WorkingWithStrings { public static void main(String[] args) throws UnsupportedEncodingException { // 问题: 1."UTF-8"必须在Java平台中被支持 2.人工敲入会有偏差 // byte[] bytes = "foo".getBytes("UTF-8"); // 解决: Charsets类提供了对Java平台支持字符集 byte[] bytes = "foo".getBytes(Charsets.UTF_8); // 问题: 使用StringBuilder类连接字符串太繁琐, 代码其实都是重复的 // 解决: Strings类封装了连接字符串的统一代码 System.out.println("padEnd"); String stringsTest = Strings.padEnd("foo", 6, 'o'); System.out.println(stringsTest); // 在String作为参数时,将null转换成""防止空指针问题 System.out.println("nullToEmpty"); String nullToEmptyTest1 = Strings.nullToEmpty("123"); String nullToEmptyTest2 = Strings.nullToEmpty(null); System.out.println(nullToEmptyTest1 + "--" + nullToEmptyTest2); // ""转null System.out.println("emptyToNull"); String emptyToNullTest1 = Strings.emptyToNull("123"); String emptyToNullTest2 = Strings.emptyToNull(""); System.out.println(emptyToNullTest1 + "--" + emptyToNullTest2); // 将字符串中的Tab和多个空格转为一个空格 String tabsAndSpaces = "String with spaces and tabs"; String expected = "String with spaces and tabs"; String scrubbed = CharMatcher.WHITESPACE.collapseFrom(tabsAndSpaces,' '); System.out.println(expected.equals(scrubbed)); // Object utilities 对象工具 // 1. toString()实现 System.out.println(Objects.toStringHelper(WorkingWithStrings.class).omitNullValues() .add("expected", expected).add("tabsAndSpaces", tabsAndSpaces)); // 2. 检查如果为null值 , 填充默认值 System.out.println(Objects.firstNonNull(null, "default value")); // 3. 生成hashcode System.out.println(Objects.hashCode(tabsAndSpaces, expected)); // 4. CompareTo实现 如果都是相同的返回0,有一个不同返回-1 System.out.println(ComparisonChain.start().compare(tabsAndSpaces, expected).compare(expected, scrubbed).result()); } }
参考资料:
《Getting Started with Google Guava》
原文地址:http://blog.csdn.net/wenniuwuren/article/details/45873909