zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    jenkins 参数化构建,获取git分支
    maven 历史版本下载
    spring mybatis 多个数据源配置
    springmvc 加载静态文件失败
    java服务覆盖率统计 jacoco ant
    testng监听ISuiteListener
    记录一下这几天遇到的坑(.netcore 代理问题)
    Js获取客户端用户Ip地址
    如何获取AWS的Access Key ID 和 Secret Access Key (Unable to find credentials)
    记录一个EF连接查询的异常:the entity or complex type 'x' cannot be constructed in a linq to entities query
  • 原文地址:https://www.cnblogs.com/leechenxiang/p/5288177.html
Copyright © 2011-2022 走看看