org.apache.commons.lang3功能示例

  1. import java.io.File;  
  2. import java.io.FileInputStream;  
  3. import java.io.FileNotFoundException;  
  4. import java.io.FileOutputStream;  
  5. import java.io.IOException;  
  6. import java.util.Calendar;  
  7. import java.util.Date;  
  8. import java.util.Iterator;  
  9.   
  10. import org.apache.commons.lang3.ArrayUtils;  
  11. import org.apache.commons.lang3.CharSet;  
  12. import org.apache.commons.lang3.CharSetUtils;  
  13. import org.apache.commons.lang3.ClassUtils;  
  14. import org.apache.commons.lang3.ObjectUtils;  
  15. import org.apache.commons.lang3.RandomStringUtils;  
  16. import org.apache.commons.lang3.SerializationUtils;  
  17. import org.apache.commons.lang3.StringUtils;  
  18. import org.apache.commons.lang3.SystemUtils;  
  19. import org.apache.commons.lang3.builder.EqualsBuilder;  
  20. import org.apache.commons.lang3.builder.HashCodeBuilder;  
  21. import org.apache.commons.lang3.builder.ToStringBuilder;  
  22. import org.apache.commons.lang3.builder.ToStringStyle;  
  23. import org.apache.commons.lang3.math.NumberUtils;  
  24. import org.apache.commons.lang3.time.DateFormatUtils;  
  25. import org.apache.commons.lang3.time.DateUtils;  
  26. import org.apache.commons.lang3.time.StopWatch;  
  27. import org.apache.commons.lang3.StringEscapeUtils;  
  28.   
  29.   
  30.   
  31. /** 
  32.  * @author Administrator 
  33.  *http://commons.apache.org/proper/commons-lang/userguide.html 
  34.  */  
  35. public class LangDemo  
  36. {  
  37.     public void charSetDemo()  
  38.     {  
  39.         System.out.println("**CharSetDemo**");  
  40.         CharSet charSet = CharSet.getInstance("aeiou");  
  41.         String demoStr = "The quick brown fox jumps over the lazy dog.";  
  42.         int count = 0;  
  43.         for (int i = 0, len = demoStr.length(); i < len; i++)  
  44.         {  
  45.             if (charSet.contains(demoStr.charAt(i)))  
  46.             {  
  47.                 count++;  
  48.             }  
  49.         }  
  50.         System.out.println("count: " + count);  
  51.     }  
  52.   
  53.     public void charSetUtilsDemo()  
  54.     {  
  55.         System.out.println("**CharSetUtilsDemo**");  
  56.         System.out.println("计算字符串中包含某字符数.");  
  57.         System.out.println(CharSetUtils.count(  
  58.                 "The quick brown fox jumps over the lazy dog.""aeiou"));  
  59.   
  60.         System.out.println("删除字符串中某字符.");  
  61.         System.out.println(CharSetUtils.delete(  
  62.                 "The quick brown fox jumps over the lazy dog.""aeiou"));  
  63.   
  64.         System.out.println("保留字符串中某字符.");  
  65.         System.out.println(CharSetUtils.keep(  
  66.                 "The quick brown fox jumps over the lazy dog.""aeiou"));  
  67.   
  68.         System.out.println("合并重复的字符.");  
  69.         System.out.println(CharSetUtils.squeeze("a  bbbbbb     c dd""b d"));  
  70.     }  
  71.   
  72.     public void objectUtilsDemo()  
  73.     {  
  74.         System.out.println("**ObjectUtilsDemo**");  
  75.         System.out.println("Object为null时,默认打印某字符.");  
  76.         Object obj = null;  
  77.         System.out.println(ObjectUtils.defaultIfNull(obj, "空"));  
  78.   
  79.         System.out.println("验证两个引用是否指向的Object是否相等,取决于Object的equals()方法.");  
  80.         Object a = new Object();  
  81.         Object b = a;  
  82.         Object c = new Object();  
  83.         System.out.println(ObjectUtils.equals(a, b));  
  84.         System.out.println(ObjectUtils.equals(a, c));  
  85.   
  86.         System.out.println("用父类Object的toString()方法返回对象信息.");  
  87.         Date date = new Date();  
  88.         System.out.println(ObjectUtils.identityToString(date));  
  89.         System.out.println(date);  
  90.   
  91.         System.out.println("返回类本身的toString()方法结果,对象为null时,返回0长度字符串.");  
  92.         System.out.println(ObjectUtils.toString(date));  
  93.         System.out.println(ObjectUtils.toString(null));  
  94.         System.out.println(date);  
  95.     }  
  96.   
  97.     public void serializationUtilsDemo()  
  98.     {  
  99.         System.out.println("*SerializationUtils**");  
  100.         Date date = new Date();  
  101.         byte[] bytes = SerializationUtils.serialize(date);  
  102.         System.out.println(ArrayUtils.toString(bytes));  
  103.         System.out.println(date);  
  104.   
  105.         Date reDate = (Date) SerializationUtils.deserialize(bytes);  
  106.         System.out.println(reDate);  
  107.         System.out.println(ObjectUtils.equals(date, reDate));  
  108.         System.out.println(date == reDate);  
  109.   
  110.         FileOutputStream fos = null;  
  111.         FileInputStream fis = null;  
  112.         try  
  113.         {  
  114.             fos = new FileOutputStream(new File("d:/test.txt"));  
  115.             fis = new FileInputStream(new File("d:/test.txt"));  
  116.             SerializationUtils.serialize(date, fos);  
  117.             Date reDate2 = (Date) SerializationUtils.deserialize(fis);  
  118.   
  119.             System.out.println(date.equals(reDate2));  
  120.   
  121.         }  
  122.         catch (FileNotFoundException e)  
  123.         {  
  124.             e.printStackTrace();  
  125.         }  
  126.         finally  
  127.         {  
  128.             try  
  129.             {  
  130.                 fos.close();  
  131.                 fis.close();  
  132.             }  
  133.             catch (IOException e)  
  134.             {  
  135.                 e.printStackTrace();  
  136.             }  
  137.         }  
  138.   
  139.     }  
  140.   
  141.     public void randomStringUtilsDemo()  
  142.     {  
  143.         System.out.println("**RandomStringUtilsDemo**");  
  144.         System.out.println("生成指定长度的随机字符串,好像没什么用.");  
  145.         System.out.println(RandomStringUtils.random(500));  
  146.   
  147.         System.out.println("在指定字符串中生成长度为n的随机字符串.");  
  148.         System.out.println(RandomStringUtils.random(5"abcdefghijk"));  
  149.   
  150.         System.out.println("指定从字符或数字中生成随机字符串.");  
  151.         System.out.println(RandomStringUtils.random(5truefalse));  
  152.         System.out.println(RandomStringUtils.random(5falsetrue));  
  153.   
  154.     }  
  155.   
  156.     public void stringUtilsDemo()  
  157.     {  
  158.         System.out.println("**StringUtilsDemo**");  
  159.         System.out.println("将字符串重复n次,将文字按某宽度居中,将字符串数组用某字符串连接.");  
  160.         String[] header = new String[3];  
  161.         header[0] = StringUtils.repeat("*"50);  
  162.         header[1] = StringUtils.center("  StringUtilsDemo  "50"^O^");  
  163.         header[2] = header[0];  
  164.         String head = StringUtils.join(header, "/n");  
  165.         System.out.println(head);  
  166.   
  167.         System.out.println("缩短到某长度,用...结尾.");  
  168.         System.out.println(StringUtils.abbreviate(  
  169.                 "The quick brown fox jumps over the lazy dog."10));  
  170.         System.out.println(StringUtils.abbreviate(  
  171.                 "The quick brown fox jumps over the lazy dog."1510));  
  172.   
  173.         System.out.println("返回两字符串不同处索引号.");  
  174.         System.out.println(StringUtils.indexOfDifference("aaabc""aaacc"));  
  175.   
  176.         System.out.println("返回两字符串不同处开始至结束.");  
  177.         System.out.println(StringUtils.difference("aaabcde""aaaccde"));  
  178.   
  179.         System.out.println("截去字符串为以指定字符串结尾的部分.");  
  180.         System.out.println(StringUtils.chomp("aaabcde""de"));  
  181.   
  182.         System.out.println("检查一字符串是否为另一字符串的子集.");  
  183.         System.out.println(StringUtils.containsOnly("aad""aadd"));  
  184.   
  185.         System.out.println("检查一字符串是否不是另一字符串的子集.");  
  186.         System.out.println(StringUtils.containsNone("defg""aadd"));  
  187.   
  188.         System.out.println("检查一字符串是否包含另一字符串.");  
  189.         System.out.println(StringUtils.contains("defg""ef"));  
  190.         System.out.println(StringUtils.containsOnly("ef""defg"));  
  191.   
  192.         System.out.println("返回可以处理null的toString().");  
  193.         System.out.println(StringUtils.defaultString("aaaa"));  
  194.         System.out.println("?" + StringUtils.defaultString(null) + "!");  
  195.   
  196.         System.out.println("去除字符中的空格.");  
  197.         System.out.println(StringUtils.deleteWhitespace("aa  bb  cc"));  
  198.   
  199.         System.out.println("判断是否是某类字符.");  
  200.         System.out.println(StringUtils.isAlpha("ab"));  
  201.         System.out.println(StringUtils.isAlphanumeric("12"));  
  202.         System.out.println(StringUtils.isBlank(""));  
  203.         System.out.println(StringUtils.isNumeric("123"));  
  204.     }  
  205.   
  206.     public void systemUtilsDemo()  
  207.     {  
  208.         System.out.println(genHeader("SystemUtilsDemo"));  
  209.         System.out.println("获得系统文件分隔符.");  
  210.         System.out.println(SystemUtils.FILE_SEPARATOR);  
  211.   
  212.         System.out.println("获得源文件编码.");  
  213.         System.out.println(SystemUtils.FILE_ENCODING);  
  214.   
  215.         System.out.println("获得ext目录.");  
  216.         System.out.println(SystemUtils.JAVA_EXT_DIRS);  
  217.   
  218.         System.out.println("获得java版本.");  
  219.         System.out.println(SystemUtils.JAVA_VM_VERSION);  
  220.   
  221.         System.out.println("获得java厂商.");  
  222.         System.out.println(SystemUtils.JAVA_VENDOR);  
  223.     }  
  224.   
  225.     public void classUtilsDemo()  
  226.     {  
  227.         System.out.println(genHeader("ClassUtilsDemo"));  
  228.         System.out.println("获取类实现的所有接口.");  
  229.         System.out.println(ClassUtils.getAllInterfaces(Date.class));  
  230.   
  231.         System.out.println("获取类所有父类.");  
  232.         System.out.println(ClassUtils.getAllSuperclasses(Date.class));  
  233.   
  234.         System.out.println("获取简单类名.");  
  235.         System.out.println(ClassUtils.getShortClassName(Date.class));  
  236.   
  237.         System.out.println("获取包名.");  
  238.         System.out.println(ClassUtils.getPackageName(Date.class));  
  239.   
  240.         System.out.println("判断是否可以转型.");  
  241.         System.out.println(ClassUtils.isAssignable(Date.class, Object.class));  
  242.         System.out.println(ClassUtils.isAssignable(Object.class, Date.class));  
  243.     }  
  244.   
  245.     public void stringEscapeUtilsDemo()  
  246.     {  
  247.         System.out.println(genHeader("StringEcsapeUtils"));  
  248.         System.out.println("转换特殊字符.");  
  249.         System.out.println("html:" + StringEscapeUtils.escapeHtml4("/n\n"));  
  250.         System.out.println("html:"  
  251.                 + StringEscapeUtils.unescapeHtml4("<p>"));  
  252.     }  
  253.   
  254.     private final class BuildDemo  
  255.     {  
  256.         String name;  
  257.   
  258.         int age;  
  259.   
  260.         public BuildDemo(String name, int age)  
  261.         {  
  262.             this.name = name;  
  263.             this.age = age;  
  264.         }  
  265.   
  266.         public String toString()  
  267.         {  
  268.             ToStringBuilder tsb = new ToStringBuilder(this,  
  269.                     ToStringStyle.MULTI_LINE_STYLE);  
  270.             tsb.append("Name", name);  
  271.             tsb.append("Age", age);  
  272.             return tsb.toString();  
  273.         }  
  274.   
  275.         public int hashCode()  
  276.         {  
  277.             HashCodeBuilder hcb = new HashCodeBuilder();  
  278.             hcb.append(name);  
  279.             hcb.append(age);  
  280.             return hcb.hashCode();  
  281.         }  
  282.   
  283.         public boolean equals(Object obj)  
  284.         {  
  285.             if (!(obj instanceof BuildDemo))  
  286.             {  
  287.                 return false;  
  288.             }  
  289.             BuildDemo bd = (BuildDemo) obj;  
  290.             EqualsBuilder eb = new EqualsBuilder();  
  291.             eb.append(name, bd.name);  
  292.             eb.append(age, bd.age);  
  293.             return eb.isEquals();  
  294.         }  
  295.     }  
  296.   
  297.     public void builderDemo()  
  298.     {  
  299.         System.out.println(genHeader("BuilderDemo"));  
  300.         BuildDemo obj1 = new BuildDemo("a"1);  
  301.         BuildDemo obj2 = new BuildDemo("b"2);  
  302.         BuildDemo obj3 = new BuildDemo("a"1);  
  303.   
  304.         System.out.println("toString()");  
  305.         System.out.println(obj1);  
  306.         System.out.println(obj2);  
  307.         System.out.println(obj3);  
  308.   
  309.         System.out.println("hashCode()");  
  310.         System.out.println(obj1.hashCode());  
  311.         System.out.println(obj2.hashCode());  
  312.         System.out.println(obj3.hashCode());  
  313.   
  314.         System.out.println("equals()");  
  315.         System.out.println(obj1.equals(obj2));  
  316.         System.out.println(obj1.equals(obj3));  
  317.     }  
  318.   
  319.     public void numberUtils()  
  320.     {  
  321.         System.out.println(genHeader("NumberUtils"));  
  322.         System.out.println("字符串转为数字(不知道有什么用).");  
  323.         System.out.println(NumberUtils.toInt("ba"33));  
  324.   
  325.         System.out.println("从数组中选出最大值.");  
  326.         System.out.println(NumberUtils.max(new int[] { 1234 }));  
  327.   
  328.         System.out.println("判断字符串是否全是整数.");  
  329.         System.out.println(NumberUtils.isDigits("123.1"));  
  330.   
  331.         System.out.println("判断字符串是否是有效数字.");  
  332.         System.out.println(NumberUtils.isNumber("0123.1"));  
  333.     }  
  334.   
  335.     public void dateFormatUtilsDemo()  
  336.     {  
  337.         System.out.println(genHeader("DateFormatUtilsDemo"));  
  338.         System.out.println("格式化日期输出.");  
  339.         System.out.println(DateFormatUtils.format(System.currentTimeMillis(),  
  340.                 "yyyy-MM-dd HH:mm:ss"));  
  341.   
  342.         System.out.println("秒表.");  
  343.         StopWatch sw = new StopWatch();  
  344.         sw.start();  
  345.   
  346.         for (Iterator iterator = DateUtils.iterator(new Date(),  
  347.                 DateUtils.RANGE_WEEK_CENTER); iterator.hasNext();)  
  348.         {  
  349.             Calendar cal = (Calendar) iterator.next();  
  350.             System.out.println(DateFormatUtils.format(cal.getTime(),  
  351.                     "yy-MM-dd HH:mm"));  
  352.         }  
  353.   
  354.         sw.stop();  
  355.         System.out.println("秒表计时:" + sw.getTime());  
  356.   
  357.     }  
  358.   
  359.     private String genHeader(String head)  
  360.     {  
  361.         String[] header = new String[3];  
  362.         header[0] = StringUtils.repeat("*"50);  
  363.         header[1] = StringUtils.center("  " + head + "  "50"^O^");  
  364.         header[2] = header[0];  
  365.         return StringUtils.join(header, "/n");  
  366.     }  
  367.   
  368.     /** 
  369.      * @param args 
  370.      */  
  371.     public static void main(String[] args)  
  372.     {  
  373.         LangDemo langDemo = new LangDemo();  
  374.   
  375.         langDemo.charSetDemo();  
  376.         langDemo.charSetUtilsDemo();  
  377.         langDemo.objectUtilsDemo();  
  378.         langDemo.serializationUtilsDemo();  
  379.         langDemo.randomStringUtilsDemo();  
  380.         langDemo.stringUtilsDemo();  
  381.         langDemo.systemUtilsDemo();  
  382.         langDemo.classUtilsDemo();  
  383.         langDemo.stringEscapeUtilsDemo();  
  384.         langDemo.builderDemo();  
  385.         langDemo.numberUtils();  
  386.         langDemo.dateFormatUtilsDemo();  
  387.   
  388.     }  
  389.   
  390. }   
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值