Apache 扩展包

Lang 包:

字符串工具类:StringUtils

    @Test
    public void testStringUtils() {
        boolean flag = StringUtils.isEmpty("");
        System.out.println(flag);

        //判断字符串是否为数字
        System.out.println(StringUtils.isNumeric("1245d"));

        //输出最左边的 n 个字符
        System.out.println(StringUtils.left("ZhangChao",5));

        //统计子字符串出现的次数
        System.out.println(StringUtils.countMatches("ZhangChao","an"));

        //随机生成,长度为 n 的仅字母的字符串
        System.out.println(RandomStringUtils.randomAlphabetic(5));

        //随机生成,长度为 n 的 ASCII 字符串
        System.out.println(RandomStringUtils.randomAscii(5));

        //以一个单词为操作对象,首字母大写
        System.out.println(WordUtils.capitalize("i'm zhang chao"));
    }

时间工具类:

    @Test
    public void testDateUtil() throws ParseException {
        //将日期转为指定格式的字符串
        String dateStr = DateFormatUtils.format(new Date(), "yyyy-MM-dd HH:mm:ss");
        System.out.println(dateStr);
        //将时间字符串转化为 Date 对象
        Date date = DateUtils.parseDate("2018/08/29","yyyy/MM/dd");
        System.out.println(date);
    }
Joda 包:

Joda 日期扩展包,对时间、日期进行了一些列的封装,非常方便。

本地格式的日期时间:

    @Test
    public void testTime() {
        DateTime dt = new DateTime();
        //按照地区输出星期
        System.out.println(dt.dayOfWeek().getAsText(Locale.CHINA));
        System.out.println(dt.dayOfWeek().getAsText(Locale.ENGLISH));
        //输出本地日期格式
        System.out.println(dt.toLocalDate());
        //日期格式化
        System.out.println(dt.toString(DateTimeFormat.forPattern("yyyy 年 M 月 d 日")));
    }

日期计算:

    /**
     * 日期计算处理工具类:
     *  DateTime 是不可变的,即使执行了 plusxxx,minusxxx 操作,其对象仍然不会改变,只是新生了一个对象而已。
     */
    @Test
    public void testDate() {
        DateTime dt = new DateTime();
        //一个小时后星期几
        System.out.println("一小时后是:" + dt.plusHours(1).dayOfWeek().getAsText());
        //24小时后星期几
        System.out.println("24小时后是:" + dt.plusHours(24).dayOfWeek().getAsText());
        //两天后星期几
        System.out.println("两天后是:" + dt.plusDays(2).dayOfWeek().getAsText());
        //两年后的时间
        System.out.println("两年后的今天是:" + dt.plusYears(2).toLocalDate());
        //十年前的今天星期几
        System.out.println("十年前的今天是:" + dt.minusYears(10).dayOfWeek().getAsText());
        //离 2018-08-30 还有多少小时
        System.out.println("距离 2018-08-30 还有:" + Hours.hoursBetween(dt, new DateTime("2018-08-30")).getHours() + "小时");

    }
    /**
     * MutableDateTime:可变的,调用相应的方法后会改变其自身的值
     */
    @Test
    public void testMutableDateTime() {
        MutableDateTime mdt = new MutableDateTime();
        //十年后
        DateTime dt = new DateTime().plusYears(10);
        while (mdt.isBefore(dt)){
            //每次加一天
            mdt.addDays(1);
            //黑色周五:13号并且是星期五
            if (mdt.getDayOfMonth() == 13 && mdt.getDayOfWeek() == 5) {
                System.out.println("黑色星期五:" + mdt.toString(DateTimeFormat.forPattern("yyyy 年 M  月 d  日")));
            }
        }
    }

与 JDK 中的日期库进行转换:

    @Test
    public void testDateTimeConverDate() {
        DateTime dt = new DateTime();
        // DateTime -> Date
        Date date = dt.toDate();
        System.out.println(date);

        // Date -> DateTime
        DateTime dateTime = new DateTime(date);
        System.out.println(dateTime.toLocalDate());
    }
Collections:

Collections 工具包提供了 ListUtils 、MapUtils 等基本集合操作工具,比较常用而且简单。

Bag:
Bag 是 Collections 中的一种,它可以容纳重复元素,于 List 不同的是,它提供了元素统计功能,比如求一个集合中某个元素的个数。

    @Test
    public void testBag() {
        Bag box = new HashBag(Arrays.asList("red","blue","green","black","pink"));
        box.add("pink",5);
        System.out.println(box.size());//10
        System.out.println(box.getCount("pink"));//6
    }

双向Map:
在 JDK 中使用的 Map 要求键是唯一的,而双向 Map 要求键和值都必须唯一。也就是说键和值是一一对应的,可以通过键操作值,也可以通过值去操作键。

    @Test
    public void testBidMap() {
        BidiMap<String,String> map = new TreeBidiMap<>();
        map.put("张三","15082383272");

        map.put("李四","0827-5519136");

        //根据 key 获取 value
        System.out.println(map.get("张三"));
        //根据 value 获取 key
        System.out.println(map.getKey("0827-5519136"));
        //根据 value 删除键值对
        map.removeValue("0827-5519136");

        System.out.println(map.getKey("0827-5519136"));
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值