继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Apache Commons 常用工具类整理

2018-05-09 21:13:126360浏览

风间影月

10实战 · 54手记 · 8推荐
TA的实战

其实一直都在使用常用工具类,只是从没去整理过,今天空了把一些常用的整理一下吧
怎么使用的一看就明白,另外还有注释,最后的使用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>
打开App,阅读手记
“小礼物走一走,来慕课关注我”
赞赏支持
风间影月说
去围观
创业公司技术总监, 10年+开发和技术管理经验。SUN认证SCJP、PMP、MCP认证。主要从事后端技术和架构领域,有丰富的电商平台与物流平台核心系统的架构设计和开发经验。
发表评论
随时随地看视频慕课网APP