Apache Commons Lang包的常用方法总结

来源:互联网 发布:淘宝去哪里看分销后台 编辑:程序博客网 时间:2024/05/02 01:26
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;import java.util.Calendar;import java.util.Date;import java.util.Iterator;import org.apache.commons.lang3.ArrayUtils;import org.apache.commons.lang3.CharSet;import org.apache.commons.lang3.CharSetUtils;import org.apache.commons.lang3.ClassUtils;import org.apache.commons.lang3.ObjectUtils;import org.apache.commons.lang3.RandomStringUtils;import org.apache.commons.lang3.SerializationUtils;import org.apache.commons.lang3.StringEscapeUtils;import org.apache.commons.lang3.StringUtils;import org.apache.commons.lang3.SystemUtils;import org.apache.commons.lang3.Validate;import org.apache.commons.lang3.builder.EqualsBuilder;import org.apache.commons.lang3.builder.HashCodeBuilder;import org.apache.commons.lang3.builder.ToStringBuilder;import org.apache.commons.lang3.builder.ToStringStyle;import org.apache.commons.lang3.math.NumberUtils;import org.apache.commons.lang3.text.WordUtils;import org.apache.commons.lang3.time.DateFormatUtils;import org.apache.commons.lang3.time.DateUtils;import org.apache.commons.lang3.time.StopWatch;/*转自霸气的小码农的博客*/public class TestLangDemo {    public void charSetDemo() {        System.out.println ("**CharSetDemo**");        CharSet charSet = CharSet.getInstance ("aeiou");        String demoStr = "The quick brown fox jumps over the lazy dog.";        int count = 0;        for (int i = 0, len = demoStr.length(); i < len; i++) {            if (charSet.contains (demoStr.charAt (i) ) ) {                count++;            }        }        System.out.println ("count: " + count);    }    public void charSetUtilsDemo() {        System.out.println ("**CharSetUtilsDemo**");        System.out.println ("计算字符串中包含某字符数.");        System.out.println (CharSetUtils.count (                                "The quick brown fox jumps over the lazy dog.", "aeiou") );        System.out.println ("删除字符串中某字符.");        System.out.println (CharSetUtils.delete (                                "The quick brown fox jumps over the lazy dog.", "aeiou") );        System.out.println ("保留字符串中某字符.");        System.out.println (CharSetUtils.keep (                                "The quick brown fox jumps over the lazy dog.", "aeiou") );        System.out.println ("合并重复的字符.");        System.out.println (CharSetUtils.squeeze ("a  bbbbbb     c dd", "b d") );    }    public void objectUtilsDemo() {        System.out.println ("**ObjectUtilsDemo**");        System.out.println ("Object为null时,默认打印某字符.");        Object obj = null;        System.out.println (ObjectUtils.defaultIfNull (obj, "空") );        System.out.println ("验证两个引用是否指向的Object是否相等,取决于Object的equals()方法.");        Object a = new Object();        Object b = a;        Object c = new Object();        System.out.println (ObjectUtils.equals (a, b) );        System.out.println (ObjectUtils.equals (a, c) );        System.out.println ("用父类Object的toString()方法返回对象信息.");        Date date = new Date();        System.out.println (ObjectUtils.identityToString (date) );        System.out.println (date);        System.out.println ("返回类本身的toString()方法结果,对象为null时,返回0长度字符串.");        System.out.println (ObjectUtils.toString (date) );        System.out.println (ObjectUtils.toString (null) );        System.out.println (date);    }    public void serializationUtilsDemo() {        System.out.println ("*SerializationUtils**");        Date date = new Date();        byte[] bytes = SerializationUtils.serialize (date);        System.out.println (ArrayUtils.toString (bytes) );        System.out.println (date);        Date reDate = (Date) SerializationUtils.deserialize (bytes);        System.out.println (reDate);        System.out.println (ObjectUtils.equals (date, reDate) );        System.out.println (date == reDate);        FileOutputStream fos = null;        FileInputStream fis = null;        try {            fos = new FileOutputStream (new File ("d:/test.txt") );            fis = new FileInputStream (new File ("d:/test.txt") );            SerializationUtils.serialize (date, fos);            Date reDate2 = (Date) SerializationUtils.deserialize (fis);            System.out.println (date.equals (reDate2) );        } catch (FileNotFoundException e) {            e.printStackTrace();        } finally {            try {                fos.close();                fis.close();            } catch (IOException e) {                e.printStackTrace();            }        }    }    public void randomStringUtilsDemo() {        System.out.println ("**RandomStringUtilsDemo**");        System.out.println ("生成指定长度的随机字符串,好像没什么用.");        System.out.println (RandomStringUtils.random (500) );        System.out.println ("在指定字符串中生成长度为n的随机字符串.");        System.out.println (RandomStringUtils.random (5, "abcdefghijk") );        System.out.println ("指定从字符或数字中生成随机字符串.");        System.out.println (RandomStringUtils.random (5, true, false) );        System.out.println (RandomStringUtils.random (5, false, true) );    }    public void stringUtilsDemo() {        System.out.println ("**StringUtilsDemo**");        System.out.println ("将字符串重复n次,将文字按某宽度居中,将字符串数组用某字符串连接.");        String[] header = new String[3];        header[0] = StringUtils.repeat ("*", 50);        header[1] = StringUtils.center ("  StringUtilsDemo  ", 50, "^O^");        header[2] = header[0];        String head = StringUtils.join (header, "\n");        System.out.println (head);        System.out.println ("缩短到某长度,用...结尾.");        System.out.println (StringUtils.abbreviate (                                "The quick brown fox jumps over the lazy dog.", 10) );        System.out.println (StringUtils.abbreviate (                                "The quick brown fox jumps over the lazy dog.", 15, 10) );        System.out.println ("返回两字符串不同处索引号.");        System.out.println (StringUtils.indexOfDifference ("aaabc", "aaacc") );        System.out.println ("返回两字符串不同处开始至结束.");        System.out.println (StringUtils.difference ("aaabcde", "aaaccde") );        System.out.println ("截去字符串为以指定字符串结尾的部分.");        System.out.println (StringUtils.chomp ("aaabcde", "de") );        System.out.println ("检查一字符串是否为另一字符串的子集.");        System.out.println (StringUtils.containsOnly ("aad", "aadd") );        System.out.println ("检查一字符串是否不是另一字符串的子集.");        System.out.println (StringUtils.containsNone ("defg", "aadd") );        System.out.println ("检查一字符串是否包含另一字符串.");        System.out.println (StringUtils.contains ("defg", "ef") );        System.out.println (StringUtils.containsOnly ("ef", "defg") );        System.out.println ("返回可以处理null的toString().");        System.out.println (StringUtils.defaultString ("aaaa") );        System.out.println ("?" + StringUtils.defaultString (null) + "!");        System.out.println ("去除字符中的空格.");        System.out.println (StringUtils.deleteWhitespace ("aa  bb  cc") );        System.out.println ("分隔符处理成数组.");        String[] strArray = StringUtils.split ("a,b,,c,d,null,e", ",");        System.out.println (strArray.length);        System.out.println (strArray.toString() );        System.out.println ("判断是否是某类字符.");        System.out.println (StringUtils.isAlpha ("ab") );        System.out.println (StringUtils.isAlphanumeric ("12") );        System.out.println (StringUtils.isBlank ("") );        System.out.println (StringUtils.isNumeric ("123") );    }    public void systemUtilsDemo() {        System.out.println (genHeader ("SystemUtilsDemo") );        System.out.println ("获得系统文件分隔符.");        System.out.println (SystemUtils.FILE_SEPARATOR);        System.out.println ("获得源文件编码.");        System.out.println (SystemUtils.FILE_ENCODING);        System.out.println ("获得ext目录.");        System.out.println (SystemUtils.JAVA_EXT_DIRS);        System.out.println ("获得java版本.");        System.out.println (SystemUtils.JAVA_VM_VERSION);        System.out.println ("获得java厂商.");        System.out.println (SystemUtils.JAVA_VENDOR);    }    public void classUtilsDemo() {        System.out.println (genHeader ("ClassUtilsDemo") );        System.out.println ("获取类实现的所有接口.");        System.out.println (ClassUtils.getAllInterfaces (Date.class) );        System.out.println ("获取类所有父类.");        System.out.println (ClassUtils.getAllSuperclasses (Date.class) );        System.out.println ("获取简单类名.");        System.out.println (ClassUtils.getShortClassName (Date.class) );        System.out.println ("获取包名.");        System.out.println (ClassUtils.getPackageName (Date.class) );        System.out.println ("判断是否可以转型.");        System.out.println (ClassUtils.isAssignable (Date.class, Object.class) );        System.out.println (ClassUtils.isAssignable (Object.class, Date.class) );    }    public void stringEscapeUtilsDemo() {        System.out.println (genHeader ("StringEcsapeUtils") );        System.out.println ("转换特殊字符.");        System.out.println ("html:" + StringEscapeUtils.escapeHtml3 (" ") );        System.out.println ("html:" + StringEscapeUtils.escapeHtml4 (" ") );        System.out.println ("html:" + StringEscapeUtils.unescapeHtml3 ("<p>") );        System.out.println ("html:" + StringEscapeUtils.unescapeHtml4 ("<p>") );    }    private final class BuildDemo {        String name;        int age;        public BuildDemo (String name, int age) {            this.name = name;            this.age = age;        }        public String toString() {            ToStringBuilder tsb = new ToStringBuilder (this, ToStringStyle.MULTI_LINE_STYLE);            tsb.append ("Name", name);            tsb.append ("Age", age);            return tsb.toString();        }        public int hashCode() {            HashCodeBuilder hcb = new HashCodeBuilder();            hcb.append (name);            hcb.append (age);            return hcb.hashCode();        }        public boolean equals (Object obj) {            if (! (obj instanceof BuildDemo) ) {                return false;            }            BuildDemo bd = (BuildDemo) obj;            EqualsBuilder eb = new EqualsBuilder();            eb.append (name, bd.name);            eb.append (age, bd.age);            return eb.isEquals();        }    }    public void builderDemo() {        System.out.println (genHeader ("BuilderDemo") );        BuildDemo obj1 = new BuildDemo ("a", 1);        BuildDemo obj2 = new BuildDemo ("b", 2);        BuildDemo obj3 = new BuildDemo ("a", 1);        System.out.println ("toString()");        System.out.println (obj1);        System.out.println (obj2);        System.out.println (obj3);        System.out.println ("hashCode()");        System.out.println (obj1.hashCode() );        System.out.println (obj2.hashCode() );        System.out.println (obj3.hashCode() );        System.out.println ("equals()");        System.out.println (obj1.equals (obj2) );        System.out.println (obj1.equals (obj3) );    }    public void numberUtils() {        System.out.println (genHeader ("NumberUtils") );        System.out.println ("字符串转为数字(不知道有什么用).");        System.out.println (NumberUtils.toInt ("ba", 33) );        System.out.println ("从数组中选出最大值.");        System.out.println (NumberUtils.max (new int[] { 1, 2, 3, 4 }) );        System.out.println ("判断字符串是否全是整数.");        System.out.println (NumberUtils.isDigits ("123.1") );        System.out.println ("判断字符串是否是有效数字.");        System.out.println (NumberUtils.isNumber ("0123.1") );    }    public void dateFormatUtilsDemo() {        System.out.println (genHeader ("DateFormatUtilsDemo") );        System.out.println ("格式化日期输出.");        System.out.println (DateFormatUtils.format (System.currentTimeMillis(), "yyyy-MM-dd HH:mm:ss") );        System.out.println ("秒表.");        StopWatch sw = new StopWatch();        sw.start();        for (Iterator iterator = DateUtils.iterator (new Date(), DateUtils.RANGE_WEEK_CENTER); iterator.hasNext();) {            Calendar cal = (Calendar) iterator.next();            System.out.println (DateFormatUtils.format (cal.getTime(),                                "yy-MM-dd HH:mm") );        }        sw.stop();        System.out.println ("秒表计时:" + sw.getTime() );    }    private String genHeader (String head) {        String[] header = new String[3];        header[0] = StringUtils.repeat ("*", 50);        header[1] = StringUtils.center ("  " + head + "  ", 50, "^O^");        header[2] = header[0];        return StringUtils.join (header, "\n");    }    private void validateDemo() {        String[] strarray = {"a", "b", "c"};        System.out.println ("验证功能");        System.out.println (Validate.notEmpty (strarray) );    }    private void wordUtilsDemo() {        System.out.println ("单词处理功能");        String str1 = "wOrD";        String str2 = "ghj\nui\tpo";        System.out.println (WordUtils.capitalize (str1) ); //首字母大写        System.out.println (WordUtils.capitalizeFully (str1) ); //首字母大写其它字母小写        char[] ctrg = {'.'};        System.out.println (WordUtils.capitalizeFully ("i aM.fine", ctrg) ); //在规则地方转换        System.out.println (WordUtils.initials (str1) ); //获取首字母        System.out.println (WordUtils.initials ("Ben John Lee", null) ); //取每个单词的首字母        char[] ctr = {' ', '.'};        System.out.println (WordUtils.initials ("Ben J.Lee", ctr) ); //按指定规则获取首字母        System.out.println (WordUtils.swapCase (str1) ); //大小写逆转        System.out.println (WordUtils.wrap (str2, 1) ); //解析\n和\t等字符    }    /**     * @param args     */    public static void main (String[] args) {        TestLangDemo langDemo = new TestLangDemo();        langDemo.charSetDemo();        langDemo.charSetUtilsDemo();        langDemo.objectUtilsDemo();        langDemo.serializationUtilsDemo();        langDemo.randomStringUtilsDemo();        langDemo.stringUtilsDemo();        langDemo.systemUtilsDemo();        langDemo.classUtilsDemo();        langDemo.stringEscapeUtilsDemo();        langDemo.builderDemo();        langDemo.numberUtils();        langDemo.dateFormatUtilsDemo();        langDemo.validateDemo();        langDemo.wordUtilsDemo();    }}

0 0
原创粉丝点击