java开发常用工具类(持续更新...)

文章目录

  • 一、apache.commons.lang3
    • 1、StringUtils字符串工具类
      • 1.1、判断字符串是否为空
      • 1.2、截取字符串
      • 1.3、判断字符串内容类型
    • 2、ObjectUtils工具类
      • 2.1、判断对象是否为空
      • 2.2、对象为null返回默认值
    • 3、DateUtils日期工具类
      • 3.1、日期加减法
  • 二、google.guava
    • 1、普通集合
    • 2、不可变集合(immutable)
    • 3、下划线与驼峰相互转换

一、apache.commons.lang3

引入依赖

<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version>
</dependency>

1、StringUtils字符串工具类

1.1、判断字符串是否为空

// 判断传入的多个字符串是否为null或者长度有0
StringUtils.isAllEmpty(null, "    "); // false// 判断传入的字符串是否为null或者长度有0
StringUtils.isEmpty(""); // true// 判断传入的字符串==null或者字符串不存在非空白字符,返回true
StringUtils.isBlank(" "); // true

1.2、截取字符串

// 返回从0到str.length-1位置的字符串(删除最后一位)
StringUtils.chop("abc3"); // abc// 截取字符串尾部指定的字符串
StringUtils.removeEnd("10086.jpg", ".jpg"); // 10086// left、right从左(右)开始截取n位字符
StringUtils.left("abc", 2); // ab
StringUtils.right("abc", 2); // bc// 从第n位开始截取m位字符       n  m
StringUtils.mid("abcdefg", 2, 4); // cdef

1.3、判断字符串内容类型

// 全由数字组成返回True
StringUtils.isNumeric("123"); // true// 全由字母组成返回True.
StringUtils.isAlpha("abc"); // true

2、ObjectUtils工具类

2.1、判断对象是否为空

// 检查对象是否为空,支持:CharSequence、Array、Collection、Map
ObjectUtils.isNotEmpty(null); // false
ObjectUtils.isEmpty(Arrays.asList()); // true

2.2、对象为null返回默认值

// 如果传递的对象是 null,则返回默认值
String string = ObjectUtils.defaultIfNull(null, "123"); // 123

3、DateUtils日期工具类

3.1、日期加减法

// 年份加一年
DateUtils.addYears(new Date(), 1);
// 天数减两天
DateUtils.addDays(new Date(), -2);
// 小时加两小时
DateUtils.addHours(new Date(), 2);
// 分钟减两分钟
DateUtils.addMinutes(new Date(), -2);
// 毫秒加两毫秒
DateUtils.addMilliseconds(new Date(), 2);
// 秒数加两秒
DateUtils.addSeconds(new Date(), 2);

二、google.guava

引入依赖

<dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>32.1.3-jre</version>
</dependency>

1、普通集合

List<String> list = Lists.newArrayList();
Set<String> set = Sets.newHashSet();
Map<String, String> map = Maps.newHashMap();

2、不可变集合(immutable)

  • 与普通的集合(如List、Set、Map)相比,Immutable Collections在初始化后无法对其做任何修改
  • 这样可以确保数据的一致性和安全性
List<Integer> iList = ImmutableList.of(12,54,87);
// iList.add(123); // 这将引发UnsupportedOperationException异常
Set<Integer> iSet = ImmutableSet.of(354,54,764,354);
Map<String, Integer> iMap = ImmutableMap.of("k1", 453, "k2", 534);

3、下划线与驼峰相互转换

// 中划线转驼峰
CaseFormat.LOWER_HYPHEN.to(CaseFormat.LOWER_CAMEL, "test-data"); // testData
// 下划线转驼峰
CaseFormat.LOWER_UNDERSCORE.to(CaseFormat.LOWER_CAMEL, "test_data"); // testData
// 下划线转首字母大写的驼峰
CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, "test_data"); // TestData
// 首字母大写驼峰转下划线
CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, "TestData"); // test_data
// 驼峰转中划线
CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_HYPHEN, "testData"); // test-data

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/4859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 全栈体系【四阶】(三十七)

第五章 深度学习 八、目标检测 3. 目标检测模型 3.1 R-CNN 系列 3.1.1 R-CNN 3.1.1.1 定义 R-CNN(全称 Regions with CNN features) &#xff0c;是 R-CNN 系列的第一代算法&#xff0c;其实没有过多的使用“深度学习”思想&#xff0c;而是将“深度学习”和传统的“计算…

Mac NTFS磁盘读写工具选择:Tuxera还是Paragon?

在Mac上使用NTFS磁盘时&#xff0c;选择一款合适的读写工具至关重要。Tuxera和Paragon作为两款备受推崇的Mac NTFS磁盘读写工具&#xff0c;都能够帮助用户轻松地实现NTFS格式的读写。那么&#xff0c;面对这两款功能强大的工具&#xff0c;我们应该如何选择呢&#xff1f;本文…

CACTER AI实验室:AI大模型在邮件安全领域的应用

随着人工智能技术的飞速发展&#xff0c;AI已经深入到生活的各个领域。AI大模型在邮件安全领域展现出巨大潜力&#xff0c;尤其是反钓鱼检测上的应用&#xff0c;正逐渐展现出其独特的价值。 4月24日&#xff0c;CACTER AI实验室高级产品经理刘佳雄在直播交流会上分享了CACTER …

c语言——二叉树

目录 目录 二叉树关键概念理解 一颗拥有1000个结点的树度为4&#xff0c;则它的最小深度是&#xff1f; 那么对于二叉树&#xff0c;只掌握这些是远远不够的&#xff0c;我们还需要掌握几个最基本的经典问题&#xff0c; 求二叉树大小 求叶子结点个数 求深度 求第k层的…

Window11安装vim编辑器

我们在做git操作的时候&#xff0c;很多文字编辑工作会默认打开 Vim 编辑器来进行操作。 Vim 是一个高度可配置的文本编辑器&#xff0c;旨在让创建和更改任何类型的文本变得非常高效。大多数 UNIX 系统和 Apple OS X 都将它作为vi包含在内&#xff0c;用惯了Linux中的Vim编辑器…

长江证券:地产需求,去哪儿呢?

核心观点&#xff1a; 1.来有影&#xff0c;去无踪。无论是价格还是销量&#xff0c;年初以来房地产市场进一步深度调整。现实的直观感受是&#xff0c;住房需求锐减以及二手房供给骤增。如此短期变化&#xff0c;能否用人口、城镇化等长期因素来解释&#xff1f;是否能通过不…

rknn 麒麟系统调试环境搭建

目录 设置ip 设置静态ip adb usb调试驱动下载 可以用ssh进行远程链接 设置ip 一&#xff0e;解决方法 设置自动获取IP 第一步&#xff1a;编辑文件 sudo vim /etc/network/interfaces 第二步&#xff1a;重启network sudo /etc/init.d/networking restart 设置静态ip au…

“地表最强”文生视频模型?Sora 背后有何秘密?

自 2022 年底 ChatGPT 的横空出世&#xff0c;人工智能再度成为全世界的焦点&#xff0c;基于大语言模型&#xff08;LLM&#xff09;的 AI 更是人工智能领域的“当红炸子鸡”。此后的一年&#xff0c;我们见证了 AI 在文生文、文生图领域的飞速进展&#xff0c;但在文生视频领…

【C++】学习笔记——内存管理

文章目录 二、类和对象20. 友元1. 友元函数2.友元类 21. 内部类22. 匿名对象23. 拷贝对象时的一些编译器优化 三、内存管理1. C/C内存分布2. C语言中动态内存管理方式&#xff1a;malloc/calloc/realloc/free3. C内存管理方式 未完待续 二、类和对象 20. 友元 1. 友元函数 我…

溪谷软件:游戏联运有多简单?

游戏联运&#xff0c;即游戏联合运营&#xff0c;是一种游戏运营模式&#xff0c;涉及到多个平台或公司共同推广和运营同一款游戏。对于开发者而言&#xff0c;游戏联运的简化程度可能因具体情况而异&#xff0c;但以下是一些因素&#xff0c;使得游戏联运在某种程度上变得更加…

认识Linux及一些基本

目录 linux简介&#xff1a; 1. 发展史 UNIX发展的历史 Linux发展历史 2. 开源 3. 企业应用现状 Linux在服务器领域的发展 Linux在桌面领域的发展 Linux在移动嵌入式领域的发展 Linux在云计算/大数据领域的发展 4. 发行版本 Debian Ubuntu 红帽企业级Linux Cent…

Java 设计模式(行为型)

文章目录 策略模式迭代器模式访问者模式观察者模式命令模式模板方法模式事件驱动模式责任链模式中介者模式状态模式 策略模式 策略模式是一种行为设计模式&#xff0c;它定义了一系列算法&#xff0c;将每个算法封装在独立的策略类中&#xff0c;并使它们可以互相替换。策略模…

Android 在AMS中拦截某个指定Activity的启动

文章目录 Android在AMS中拦截某个具体Activity的启动方案一&#xff08;推荐&#xff09;&#xff1a;在ActivityTaskManagerService.startActivityAsUser方法中去作拦截方案二&#xff1a;在Dialog.show()方法中直接对这个包名所创建的Dialog做限制 Android在AMS中拦截某个具体…

金荣中国模拟账户有什么用?实战演练,助力投资者稳健起步

在投资市场中&#xff0c;新手投资者往往面临着缺乏经验、不熟悉市场规则等问题&#xff0c;这些都可能导致投资者在真实交易中遭受损失。为了解决这个问题&#xff0c;金荣中国为投资者提供了一个模拟账户&#xff0c;那么金荣中国模拟账户有什么用&#xff1f;功能旨在通过实…

【经典面试题】Vue3和Vue2有什么区别?

在这篇博客中&#xff0c;我们将深入探讨 Vue 2 和 Vue 3 之间的主要差异&#xff0c;并通过示例代码来展示这些差异。 1. 架构变化 Vue 3 引入了一种新的内部架构&#xff0c;使用 Proxy 替代了 Vue 2 中的 Object.defineProperty。这个变化带来了性能的提升和更好的内存管理…

数组中的区别与例外

数组名可以表示整个数组&#xff0c;取出的是整个数组的地址 有两个例外&#xff1a; 1.sizeof&#xff08;数组名&#xff09;&#xff0c;这里的数组名表示整个数组&#xff0c;计算的是整个数组的大小&#xff0c;单位是字节。 2.&数组名&#xff0c;数组名能表示首元…

大数据分析与应用实验(黑龙江大学)

实验一 Hadoop伪分布式实验环境搭建与WordCount程序 一、实验目的 1、学习搭建Hadoop伪分布式实验环境 2、在伪分布式实验环境下运行WordCount程序 二、实验内容 1、搭建Hadoop伪分布式实验环境&#xff0c;并安装Eclipse。 2、在Eclipse环境下&#xff0c;编写并执行Wor…

JAVA 每日面试题(一)

Java 高级面试问题及答案 以下是几个常见的Java高级面试问题&#xff0c;以及对应的答案。 1. 解释Java中的强引用、软引用、弱引用和虚引用的区别&#xff1f; 答案&#xff1a; 强引用&#xff08;Strong Reference&#xff09;&#xff1a;如果一个对象具有强引用&#…

ros导航框架-代价地图

1、Costmap2DROS Costmap2DROS是代价地图与其他ROS模块的接口类&#xff0c;move_base中使用的代价地图就是Costmap2DROS对象。 Costmap2DROS负责对代价地图进行更新&#xff0c;以及发布代价地图&#xff0c;我们在rviz上看到的代价地图就是在这个类中进行发布的。 Costmap2D…

LLM - 大语言模型(LLM) 的 评估体系

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/138160155 大语言模型(LLM)的评估是复杂且多维的过程,涉及多个方面,包括评估体系、评估方法、评估实践。评估体系包括评估数据集、模型输出、样本/输出变换…