码迷,mamicode.com
首页 > 其他好文 > 详细

让开发效率爆表的Guava ---- 基础工具篇

时间:2015-05-20 22:31:51      阅读:443      评论:0      收藏:0      [点我收藏+]

标签:string   guava   开源   

    使用现成的库的原因, 既能减少自己开发所带来的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》

让开发效率爆表的Guava ---- 基础工具篇

标签:string   guava   开源   

原文地址:http://blog.csdn.net/wenniuwuren/article/details/45873909

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!