服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

看例子练apache commons之lang篇

看commons包时的相关练习,可以用这个包提高编码效率。

package org.raistlin.test.apache;

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.lang.arrayutils;
import org.apache.commons.lang.charset;
import org.apache.commons.lang.charsetutils;
import org.apache.commons.lang.classutils;
import org.apache.commons.lang.objectutils;
import org.apache.commons.lang.randomstringutils;
import org.apache.commons.lang.serializationutils;
import org.apache.commons.lang.stringescapeutils;
import org.apache.commons.lang.stringutils;
import org.apache.commons.lang.systemutils;
import org.apache.commons.lang.builder.equalsbuilder;
import org.apache.commons.lang.builder.hashcodebuilder;
import org.apache.commons.lang.builder.tostringbuilder;
import org.apache.commons.lang.builder.tostringstyle;
import org.apache.commons.lang.math.numberutils;
import org.apache.commons.lang.time.dateformatutils;
import org.apache.commons.lang.time.dateutils;
import org.apache.commons.lang.time.stopwatch;

public class langdemo
{
    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("判断是否是某类字符.");
        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.escapehtml("

"));
        system.out.println("html:"
                + stringescapeutils.unescapehtml("<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.stringtoint("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");
    }

    /**
     * @param args
     */
    public static void main(string[] args)
    {
        langdemo langdemo = new langdemo();

        langdemo.charsetdemo();
        langdemo.charsetutilsdemo();
        langdemo.objectutilsdemo();
        langdemo.serializationutilsdemo();
        langdemo.randomstringutilsdemo();
        langdemo.stringutilsdemo();
        langdemo.systemutilsdemo();
        langdemo.classutilsdemo();
        langdemo.stringescapeutilsdemo();
        langdemo.builderdemo();
        langdemo.numberutils();
        langdemo.dateformatutilsdemo();

    }

}

扫描关注微信公众号