Apache Commons Lang包的常用方法總結

fpy7 9年前發布 | 7K 次閱讀 Java

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();
}

}</pre>

 本文由用戶 fpy7 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!