常用工具集合 basic-tool

常用工具集合 basic-tool

网上看到的,觉得还不错的工具包,可以来学习学习,以下是作者的文档

项目地址:https://github.com/AAA-AA/basic-tools

文档地址见:https://aaa-aa.github.io/basic-tools/

超大文本极速读取工具类

使用说明

public static void main(String[] args) {AtomicLong counter = new AtomicLong(0);
        String bigFilePath = "/Users/renhongqiang/Downloads/work-doc/2000W/test.csv";
        BigFileReader.Builder builder = new BigFileReader.Builder(bigFilePath, line -> System.out.println(String.format("total record: %s,line is: %s", counter.incrementAndGet(), line)));
        BigFileReader bigFileReader = builder
                .threadPoolSize(100)
                .charset(StandardCharsets.UTF_8)
                .bufferSize(1024 * 1024).build();
        bigFileReader.start();}

实际效果见博客

多线程极速读取超大文件

校验工具类使用说明

支持集合、字符串、对象判空,注解类判定,以及各类综合操作

常用工具集合 basic-tool

日期工具类使用说明

获取当天零点

Date today = Dates.today();

将日期类型格式化为字符串

Date date = Dates.addDays(custDate, 32);
String format = Dates.format(date);

将字符串类型 parse 为日期类型

Date custDate = Dates.parse("2020-04-23 25", Dates.DATE_FORMAT);

对日期时间的各类操作

Date date = Dates.addDays(custDate, 32);
Date addM = Dates.addMinutes(date,5);

拓展集合使用说明

list 转 map

Order order = new Order("Carli","12112");
Order order2 = new Order("Michale","11223");
Order order3 = new Order("Marry","642321");
List<Order> list = new ArrayList<>();
list.add(order);
list.add(order2);
list.add(order3);
Map<String, Order> kvFieldBean = ExtCollections.kvFieldBean(Order::getOwner, list);

常用工具集合 basic-tool

list 中 key 相同合并操作

Order order = new Order("Carli","12112");
Order order2 = new Order("Carli","11223");
Order order3 = new Order("Marry","642321");
List<Order> list = new ArrayList<>();
list.add(order);
list.add(order2);
list.add(order3);

Map<String, List<Order>> kvFieldBeans = ExtCollections.kvFieldBeans(Order::getOwner, list);
System.out.println(kvFieldBeans);

常用工具集合 basic-tool

list 中任选 k,v 字段,重组为 map

Order order = new Order("Carli","12112");
Order order2 = new Order("Carli","11223");
Order order3 = new Order("Marry","642321");
List<Order> list = new ArrayList<>();
list.add(order);
list.add(order2);
list.add(order3);
Map<String, String> map = ExtCollections.kv(Order::getId, Order::getOwner, list);

常用工具集合 basic-tool

身份证工具类说明

有效身份证号自动生成

@Test
public void testGenerate() {System.out.println(IdCards.generate());
    System.out.println(IdCards.generateByAreaName(" 东城区 "));
}

年龄提取

IdCards.parseAge("420102199401015244")

出生年月提取

IdCards.parseBirthday("420102199401015244")

身份证合法性校验

boolean checkCardId = IdCards.checkCardId("420102199401015244");

15 到 18 位身份证转换

String idCard = IdCards.trans15To18("420102199401015")

日志格式化工具说明

敏感或超长字符串截断

在需要的字段上加 @HideImg

@Test
    public void testHide() {Person person = new Person();
        System.out.println(LogFormats.formatLog(person));
    }

    @Data
    public static class Person {

        @HideImg
        private String img = "/9jhfsdhajfksjdfhuhiuwbjbdfoasuhrttttttthhhhhhhhhhhhhhhhhhdfuf";

        @HideAnn
        private String password = "128397287827802hhfashfkjhasfh";

        @HideCollection
        private List<String> cellphones = new ArrayList<>();}

** class="reference-link" href="#"> 敏感信息直接置为 **

直接在字段上加 @HideAnn 注解

敏感字段集合直接过滤

直接在集合字段上加 @HideCollection 注解

随机工具类说明

指定概率命中

@Test
public void testHit() {
    int count = 1;
    for (int i = 0; i < 1000000; i++) {boolean hit = Randoms.isScoreAHit(1, 1000);
        if (hit) {System.out.println(count++);
        }
    }
}

随机生成指定长度数字、字符串或数字字符串混合

@Test
public void testRandomNumOrA() {for (int i = 0; i < 10; i++) {
        // 指定 5 - 8 位长度字符串
        System.out.println(Randoms.randomOfA(5, 8));
        // 指定 4 - 7 位长度数字
        System.out.println(Randoms.randomOfD(4,7));
        // 指定 4 个长度的数字和字母混合字符串
        System.out.println(Randoms.randomOfDA(4));
    }
}

生成 8 -16 位含数字、小写和大写字母的随机密码,有校验

@Test
public void testRandomRegStr() {System.out.println(Randoms.checkAndGetResultString());
}

字符串工具类说明

下划线变驼峰(LineToHump)

@Test
public void testLineToHump() {
    String authUser = "auth_user";
    System.out.println(Strings.lineToHump(authUser));
}

驼峰变下划线(HumpToLine)

@Test
public void testHumpToLine() {
    String authUser = "authUser";
    System.out.println(Strings.humpToLine(authUser));
}

截取字符串(Cut string)

@Test
public void testSubString() {
    String demoString = "demo_string_123";
    System.out.println(Strings.substring(demoString,1,3));
}
目录
  • 常用工具集合 basic-tool
    • 超大文本极速读取工具类
      • 使用说明
      • 实际效果见博客
    • 校验工具类使用说明
    • 日期工具类使用说明
      • 获取当天零点
      • 将日期类型格式化为字符串
      • 将字符串类型 parse 为日期类型
      • 对日期时间的各类操作
    • 拓展集合使用说明
      • list 转 map
      • list 中 key 相同合并操作
      • list 中任选 k,v 字段,重组为 map
    • 身份证工具类说明
      • 有效身份证号自动生成
      • 年龄提取
      • 出生年月提取
      • 身份证合法性校验
      • 15 到 18 位身份证转换
    • 日志格式化工具说明
      • 敏感或超长字符串截断
      • 敏感信息直接置为 **
      • 敏感字段集合直接过滤
    • 随机工具类说明
      • 指定概率命中
      • 随机生成指定长度数字、字符串或数字字符串混合
      • 生成 8 -16 位含数字、小写和大写字母的随机密码,有校验
    • 字符串工具类说明
      • 下划线变驼峰 (LineToHump)
      • 驼峰变下划线 (HumpToLine)
      • 截取字符串(Cut string)
  • 手机扫描二维码访问

    本文标题:《常用工具集合 basic-tool》作者:极四维博客
    原文链接:https://cway.top/post/833.html
    特别注明外均为原创,转载请注明。

    分享到微信

    扫描二维码

    可在微信查看或分享至朋友圈。

    相关文章

    发表评论:

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

    «    2024年10月    »
    123456
    78910111213
    14151617181920
    21222324252627
    28293031

    搜索

    控制面板

    您好,欢迎到访网站!
      查看权限

    最新留言

    文章归档

    • 订阅本站的 RSS 2.0 新闻聚合