• Apache Commons 常用工具类整理


    其实一直都在使用常用工具类,只是从没去整理过,今天空了把一些常用的整理一下吧
    怎么使用的一看就明白,另外还有注释,最后的使用pom引入的jar包

    public class ApacheCommonsTest {
    
        /**
         * 从一个entity中把属性复制进另外一个entity中
         * 
         * @throws Exception
         */
        @Test
        public void testCopyNewBean() throws Exception {
            StuForm form = new StuForm("lee", 18, 1, new Date(), true);
            Stu stu = new Stu(); 
            BeanUtils.copyProperties(form, stu);
            System.out.println(stu.toString());
            
        }
        
        /**
         * base64 加密解密
         * 
         * @throws Exception
         */
        @Test
        public void testBase64Code() throws Exception {    
            String name1 = "hello, my name is lee~";
            System.out.println("Before: " + name1);
            
            String name2 = Base64.encodeBase64String(name1.getBytes());
            System.out.println("After encode: " + name2);
            
            String name3 = new String(Base64.decodeBase64(name2));
            System.out.println("After decode: " + name3);
            
            
            String url1 = "www.lee.com.cn";
            System.out.println("URL Before: " + url1);
            
            String url2 = Base64.encodeBase64URLSafeString(url1.getBytes());
            System.out.println("URL After decode: " + url2);
            
            String url3 = new String(Base64.decodeBase64(url2));
            System.out.println("URL After decode: " + url3);
        }
        
        /**
         * commons 下 collection 工具包
         * 
         * @throws Exception
         */
        @Test
        public void testCollection() throws Exception {
            OrderedMap<String, Object> om = new LinkedMap<String, Object>();
            om.put("one", 1);
            om.put("two", "2");
            om.put("three", "three");
            om.put("fore", 4);
            om.put("five", "5");
            System.out.println(om.firstKey());
            System.out.println(om.nextKey("fore"));
            System.out.println(om.previousKey("five"));
            
            System.out.println("==============================");
            
            BidiMap bm = new TreeBidiMap();
            bm.put("three", "3");
            bm.put("five", "isfive");
            System.out.println(bm.getKey("isfive").toString());
            System.out.println(bm.get("three"));
            
            // 交换key和value
            BidiMap newMap = bm.inverseBidiMap();
            System.out.println(newMap.size());
            
            System.out.println("==============================");
            
            Bag<Object> bag = new HashBag<Object>();
            bag.add("abc");
            bag.add("def", 3);
            bag.add("ghi", 5);
            
            System.out.println(bag.size());
            
            // 过滤重复元素
            Set<Object> onlyU = bag.uniqueSet();
            Iterator<Object> i = onlyU.iterator();
            while(i.hasNext()){
                Object o = i.next();
                System.out.println(o.toString());
            }
        }
        
        /**
         * Apache Commons Configuration
         * 
         * @throws Exception
         */
        @Test
        public void testConfig() throws Exception {
            PropertiesConfiguration p = new PropertiesConfiguration("test.properties");
            System.out.println(p.getString("boy.name"));
            System.out.println(p.getInt("boy.age"));
            System.out.println(p.getString("boy.birth"));
            
            p.setHeader("##this is a new string##");
            p.setProperty("new.string", "newString");
            // 保存在编译后的目录中
            p.save();
            p.save("newP");
            
        }
        
        /**
         * Apache Commons Lang
         * 
         * @throws Exception
         */
        @Test
        public void testLang() throws Exception {
            String a1[] = {"1", "2", "3"};
            String a2[] = {"a", "b", "c"};
            // 合并数组
            String a3[] = (String[])ArrayUtils.addAll(a1, a2);
            for (String s : a3) {
                System.out.println(s);
            }
            
            System.out.println("==============================");
            
            String str = "hello, my name is hanmeimei! what's your name? name";
            // 出现第一个和第二个name之间的string
            String s1 = StringUtils.substringBetween(str, "name");
            System.out.println("s1: " + s1);
            // 截取第一次出现的字符串之间的string
            String s2 = StringUtils.substringBetween(str, "name", "your");
            System.out.println("s2: " + s2);
            
    //        StringUtils.substringAfter(str, separator)
    //        StringUtils.substringBefore(str, separator)
            
            System.out.println("==============================");
            
            // 判断该字符串是不是为数字(0~9)组成,如果是,返回true 但该方法不识别有小数点
            System.out.println(StringUtils.isNumeric("454534"));
            
            System.out.println("==============================");
            
            System.out.println(ClassUtils.getShortClassName(Test.class));
            System.out.println(ClassUtils.getPackageName(Test.class));
            
            System.out.println("==============================");
            
            // 判断该字符串是不是为数字(0~9)组成,如果是,返回true 可以识别有小数点
            System.out.println(NumberUtils.isNumber("12334.11"));
            // 不建议使用,可以使用 Integer.valueOf("[number]")
            System.out.println(NumberUtils.stringToInt("33"));
            System.out.println(Integer.valueOf("33"));
            
            // 五位的随机字母和数字
            System.out.println(RandomStringUtils.randomAlphanumeric(5));
            System.out.println(StringEscapeUtils.escapeHtml("<html>"));
            System.out.println(StringEscapeUtils.escapeJava("String"));
            
            // StringUtils,判断是否是空格字符
            System.out.println(StringUtils.isBlank("   "));
    //        StringUtils.isEmpty("");
            // 将数组中的内容以,分隔
            System.out.println(StringUtils.join(a3, ","));
            // 在右边加下字符,使之总长度为6
            System.out.println(StringUtils.rightPad("abc", 6, 'T'));
            // 首字母大写
            System.out.println(StringUtils.capitalize("abc"));
            // Deletes all whitespaces from a String 删除所有空格
            System.out.println(StringUtils.deleteWhitespace("   ab  c  "));
            // 判断是否包含这个字符
            System.out.println(StringUtils.contains("abc", "ba"));
            // 表示左边两个字符
            System.out.println(StringUtils.left("abc", 2));
        }
        
    }
    <!-- apache commons -->
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.10</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-collections4</artifactId>
                <version>4.1</version>
            </dependency>
            <dependency>
                <groupId>commons-configuration</groupId>
                <artifactId>commons-configuration</artifactId>
                <version>1.10</version>
            </dependency>

    附上地址:https://github.com/leechenxiang/maven-apache-commons

  • 相关阅读:
    几种二叉可并堆(详细)
    几种二叉可并堆(详细)
    Winsock编程基础介绍 . 分类: VC++ 2013-09-14 17:30 512人阅读 评论(0) 收藏
    VS2005+WINDDK+Driver Studio 3.2个人总结 分类: VC++ 2013-09-14 17:26 593人阅读 评论(0) 收藏
    用DDK开发的9054驱动 . 分类: windows驱动程序WDM 2013-09-14 17:24 625人阅读 评论(0) 收藏
    arm-linux-gcc下载与安装 分类: arm-linux-Ubuntu 2013-09-11 14:12 698人阅读 评论(0) 收藏
    u盘安装ubuntu10.04 server.txt 分类: arm-linux-Ubuntu 2013-09-11 14:10 882人阅读 评论(1) 收藏
    Makefile的规则 分类: arm-linux-Ubuntu 2013-09-11 14:09 517人阅读 评论(0) 收藏
    学习了LINUX下用C语言遍历文件夹,一些心得 分类: arm-linux-Ubuntu 2013-09-11 14:09 885人阅读 评论(1) 收藏
    dm642的中断定时器 分类: DSP 2013-09-10 14:35 660人阅读 评论(0) 收藏
  • 原文地址:https://www.cnblogs.com/leechenxiang/p/5288177.html
Copyright © 2020-2023  润新知