Java工具库——commons-lang3的50个常用方法

在这里插入图片描述
未来的你,我亲爱的女孩,愿此刻无忧无虑,开心,快乐…

工具库介绍

Apache Commons Lang 3(通常简称为Commons Lang 3)是Apache Commons项目中的一个Java工具库,它提供了一系列实用的工具类和方法,用于简化和增强Java编程中常见的任务。Commons Lang 3主要关注文本处理、日期操作、数学计算、系统属性、反射、字符串操作等方面的功能。以下是Commons Lang 3的一些主要功能和类:

  1. StringUtils: 提供了丰富的字符串处理方法,包括字符串比较、拆分、连接、大小写转换、去除空格、判空、替换等。这些方法使字符串操作更加方便和可读。

  2. DateUtils: 用于处理日期和时间的工具类。它包括日期的格式化、解析、比较、加减等操作,使日期处理更容易。

  3. NumberUtils: 提供了处理数字类型的实用方法,如将字符串转换为数字、数值比较、范围检查等。

  4. ArrayUtils: 用于数组操作的工具类,包括数组的拷贝、查找、反转、合并等,简化了数组处理。

  5. RandomStringUtils: 生成随机字符串的工具类,可用于生成随机密码、验证码等。

  6. SystemUtils: 获取系统属性的工具类,如操作系统名称、Java版本等。

  7. ReflectionUtils: 提供了用于反射操作的实用方法,可以轻松地获取类的字段、方法、构造函数等信息。

  8. WordUtils: 提供了一些词汇处理的方法,如大小写转换、首字母大写等。

Commons Lang 3的主要目标是帮助Java开发人员避免编写重复的代码,提高代码的可维护性和可读性。它是一个非常受欢迎的Java工具库,广泛用于开发中,特别是在处理字符串和日期时非常有用。

方法列举

Apache Commons Lang 3包含许多有用的方法,涵盖了各种Java编程任务。以下是50个Commons Lang 3的常用方法,每个方法都附有详细解释和示例代码段:

  1. StringUtils.isEmpty(CharSequence str)

    • 解释: 检查字符串是否为空(null或长度为0)。
    • 示例:
      if (StringUtils.isEmpty(myString)) {
          // 处理空字符串
      }
      
  2. StringUtils.isNotBlank(CharSequence str)

    • 解释: 检查字符串是否非空且不仅包含空格。
    • 示例:
      if (StringUtils.isNotBlank(myString)) {
          // 处理非空且不仅包含空格的字符串
      }
      
  3. StringUtils.defaultIfEmpty(String str, String defaultStr)

    • 解释: 如果字符串为空,则返回默认字符串。
    • 示例:
      String result = StringUtils.defaultIfEmpty(myString, "default");
      
  4. StringUtils.strip(String str)

    • 解释: 去除字符串两端的空格。
    • 示例:
      String trimmed = StringUtils.strip(myString);
      
  5. StringUtils.substring(String str, int start, int end)

    • 解释: 截取字符串的子串。
    • 示例:
      String subStr = StringUtils.substring(myString, 2, 5);
      
  6. StringUtils.join(Iterable<?> iterable, String separator)

    • 解释: 将可迭代对象的元素连接成一个字符串,使用指定分隔符分隔。
    • 示例:
      List<String> list = Arrays.asList("A", "B", "C");
      String result = StringUtils.join(list, ",");
      
  7. StringUtils.replace(String text, String searchString, String replacement)

    • 解释: 替换字符串中的指定子字符串。
    • 示例:
      String replaced = StringUtils.replace(myString, "old", "new");
      
  8. StringUtils.capitalize(String str)

    • 解释: 将字符串的第一个字符转为大写。
    • 示例:
      String capitalized = StringUtils.capitalize(myString);
      
  9. StringUtils.uncapitalize(String str)

    • 解释: 将字符串的第一个字符转为小写。
    • 示例:
      String uncapitalized = StringUtils.uncapitalize(myString);
      
  10. DateUtils.parseDate(String str, String... parsePatterns)

    • 解释: 将字符串解析为日期对象,支持多种日期格式。
    • 示例:
      Date date = DateUtils.parseDate("2023-10-30", "yyyy-MM-dd");
      
  11. DateUtils.addDays(Date date, int amount)

    • 解释: 在日期上添加指定天数。
    • 示例:
      Date newDate = DateUtils.addDays(myDate, 5);
      
  12. DateUtils.truncate(Date date, int field)

    • 解释: 截断日期,将其精度调整到指定字段(如年、月、日)。
    • 示例:
      Date truncatedDate = DateUtils.truncate(myDate, Calendar.MONTH);
      
  13. DateUtils.isSameDay(Date date1, Date date2)

    • 解释: 检查两个日期是否表示同一天。
    • 示例:
      boolean sameDay = DateUtils.isSameDay(date1, date2);
      
  14. NumberUtils.isNumber(String str)

    • 解释: 检查字符串是否表示一个数字。
    • 示例:
      boolean isNumber = NumberUtils.isNumber(myString);
      
  15. NumberUtils.toInt(String str, int defaultValue)

    • 解释: 将字符串转换为整数,如果无法转换则返回默认值。
    • 示例:
      int intValue = NumberUtils.toInt(myString, 0);
      
  16. ArrayUtils.contains(Object[] array, Object objectToFind)

    • 解释: 检查数组中是否包含指定元素。
    • 示例:
      boolean contains = ArrayUtils.contains(myArray, myElement);
      
  17. ArrayUtils.isEmpty(Object[] array)

    • 解释: 检查数组是否为空(null或长度为0)。
    • 示例:
      if (ArrayUtils.isEmpty(myArray)) {
          // 处理空数组
      }
      
  18. ArrayUtils.removeElement(T[] array, T element)

    • 解释: 从数组中移除指定元素。
    • 示例:
      String[] newArray = ArrayUtils.removeElement(myArray, "elementToRemove");
      
  19. ArrayUtils.reverse(T[] array)

    • 解释: 反转数组中的元素顺序。
    • 示例:
      ArrayUtils.reverse(myArray);
      
  20. ArrayUtils.toString(Object[] array, String separator)

    • 解释: 将数组转换为字符串,使用指定分隔符。
    • 示例:
      String arrayStr = ArrayUtils.toString(myArray, ",");
      
  21. ObjectUtils.defaultIfNull(T object, T defaultValue)

    • 解释: 如果对象为null,返回默认值。
    • 示例:
      String result = ObjectUtils.defaultIfNull(myObject, "default");
      
  22. SystemUtils.IS_OS_WINDOWS

    • 解释: 检查操作系统是否为Windows。
    • 示例:
      if (SystemUtils.IS_OS_WINDOWS) {
          // 在Windows操作系统上执行特定操作
      }
      
  23. ReflectionToStringBuilder.toString(Object object)

    • 解释: 使用反射将对象转换为字符串表示。
    • 示例:
      String objStr = ReflectionToStringBuilder.toString(myObject);
      
  24. WordUtils.capitalize(String str)

    • 解释: 将字符串中的单词的首字母大写。
    • 示例:
      String capitalized = WordUtils.capitalize(myString);
      
  25. WordUtils.wrap(String str, int wrapLength)

    • 解释: 将字符串按指定长度包装成多行文本。
    • 示例:
      String wrappedText = WordUtils.wrap(myString, 20);
      
  26. StringUtils.contains(CharSequence seq, CharSequence searchSeq)

  • 解释: 检查字符串是否包含指定子字符串。
  • 示例:
    boolean contains = StringUtils.contains(myString, "substring");
    
  1. StringUtils.removeStart(String str, String remove)
  • 解释: 从字符串开头移除指定前缀。
  • 示例:
    String result = StringUtils.removeStart(myString, "prefix");
    
  1. StringUtils.leftPad(String str, int size, char padChar)
  • 解释: 在字符串左侧填充指定字符,直到达到指定长度。
  • 示例:
    String padded = StringUtils.leftPad(myString, 10, '0');
    
  1. StringUtils.getLevenshteinDistance(CharSequence s, CharSequence t)
  • 解释: 计算两个字符串之间的Levenshtein距离,即编辑距离。
  • 示例:
    int distance = StringUtils.getLevenshteinDistance("kitten", "sitting");
    
  1. DateUtils.isSameInstant(Date date1, Date date2)
  • 解释: 检查两个日期是否代表相同的瞬间(同一毫秒)。
  • 示例:
    boolean sameInstant = DateUtils.isSameInstant(date1, date2);
    
  1. DateUtils.isSameLocalTime(Calendar cal1, Calendar cal2)
  • 解释: 检查两个日历对象是否代表相同的本地时间(不考虑时区)。
  • 示例:
    boolean sameLocalTime = DateUtils.isSameLocalTime(calendar1, calendar2);
    
  1. NumberUtils.max(int... array)
  • 解释: 返回一组整数中的最大值。
  • 示例:
    int max = NumberUtils.max(5, 8, 2, 10);
    
  1. NumberUtils.min(int... array)
  • 解释: 返回一组整数中的最小值。
  • 示例:
    int min = NumberUtils.min(5, 8, 2, 10);
    
  1. ArrayUtils.getLength(Object array)
  • 解释: 获取数组的长度。
  • 示例:
    int length = ArrayUtils.getLength(myArray);
    
  1. ArrayUtils.indexOf(Object[] array, Object objectToFind)
  • 解释: 查找数组中指定元素的索引。
  • 示例:
    int index = ArrayUtils.indexOf(myArray, myElement);
    
  1. ArrayUtils.containsOnly(T[] array, T... valuesToSearch)
  • 解释: 检查数组是否仅包含指定的值。
  • 示例:
    boolean containsOnly = ArrayUtils.containsOnly(myArray, "A", "B", "C");
    
  1. ArrayUtils.addAll(T[] array1, T... array2)
  • 解释: 合并两个数组。
  • 示例:
    String[] mergedArray = ArrayUtils.addAll(myArray1, myArray2);
    
  1. ArrayUtils.toMap(Object[] array)
  • 解释: 将数组转换为Map对象,其中数组中的元素被解释为键-值对。
  • 示例:
    Map<String, String> map = ArrayUtils.toMap(new String[]{"key1", "value1", "key2", "value2"});
    
  1. ObjectUtils.firstNonNull(T... values)
  • 解释: 返回第一个非null的值,如果没有非null值,则返回null。
  • 示例:
    String result = ObjectUtils.firstNonNull(value1, value2, value3);
    
  1. SystemUtils.USER_NAME
  • 解释: 获取当前用户的用户名。
  • 示例:
    String userName = SystemUtils.USER_NAME;
    
  1. SystemUtils.JAVA_VERSION
  • 解释: 获取Java运行时的版本。
  • 示例:
    String javaVersion = SystemUtils.JAVA_VERSION;
    
  1. ReflectionUtils.getAllFields(Class<?> cls)
  • 解释: 获取类及其超类中的所有字段。
  • 示例:
    Field[] fields = ReflectionUtils.getAllFields(myClass);
    
  1. ReflectionUtils.getAllMethods(Class<?> cls)
  • 解释: 获取类及其超类中的所有方法。
  • 示例:
    Method[] methods = ReflectionUtils.getAllMethods(myClass);
    
  1. WordUtils.initials(String str)
  • 解释: 获取字符串中每个单词的首字母并连接起来。
  • 示例:
    String initials = WordUtils.initials("Commons Lang");
    
  1. WordUtils.abbreviate(String str, int maxWidth)
  • 解释: 将字符串截断为指定宽度,并在末尾添加省略号。
  • 示例:
    String abbreviated = WordUtils.abbreviate("This is a long text", 10);
    

这些方法将帮助你更好地利用 Apache Commons Lang 3 来处理字符串、日期、数值、数组、系统属性、反射等多个常见任务。
欢迎多多交流探讨。。。。。。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux|安装Nomachine

参考&#xff1a;2022 Nomachine 最简安装与使用指南&#xff08;https://blog.csdn.net/qq_51116518/article/details/127450253&#xff09; 解压 先将目录调整到压缩包所在目录&#xff0c;输入sudo tar zxvf nomachine_7.6.2_3_aarch64.tar.gz 添加权限 sudo chmod -R…

GZ035 5G组网与运维赛题第6套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项&#xff08;高职组&#xff09; 赛题第6套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通&#xff08;35分&#xff09; 子任务1&#xff1a;5G公共网络部署与调试&#xff08;15分&#xff09; …

RK3568-clock

pll锁相环 总线 gating rk3568.dtsi pmucru: clock-controller@fdd00000 {compatible = "rockchip,rk3568-pmucru";reg = <0x0 0xfdd00000 0x0 0x1000>;rockchip,grf = <&grf>;rockchip,pmugrf = <&pmugrf>;#clock-cells = <1>;#re…

SQL BETWEEN运算符

SQL BETWEEN 运算符 BETWEEN运算符用于选取介于两个值之间的数据范围内的值。 BETWEEN运算符选择给定范围内的值。值可以是数字&#xff0c;文本或日期。 BETWEEN运算符是包含性的&#xff1a;包括开始和结束值&#xff0c;且开始值需小于结束值。 SQL BETWEEN 语法 SELECT …

使用 SQL 的方式查询消息队列数据以及踩坑指南

背景 为了让业务团队可以更好的跟踪自己消息的生产和消费状态&#xff0c;需要一个类似于表格视图的消息列表&#xff0c;用户可以直观的看到发送的消息&#xff1b;同时点击详情后也能查到消息的整个轨迹。 消息列表 点击详情后查看轨迹 原理介绍 由于 Pulsar 并没有关系型数…

Angular-03:组件模板

各种学习后的知识点整理归纳&#xff0c;非原创&#xff01; 组件模板 ① 数据绑定② 属性绑定③ 类名绑定④ 样式绑定⑤ 事件绑定⑥ 获取原生DOM对象6.1 在组件模板中获取6.2 在组件类中获取 ⑦ 双向数据绑定⑧ 内容投影8.1 select选择器8.2 单槽投影8.3 多槽投影 ⑨ 安全操作…

Vue图片路径问题(动态引入)

vue项目中我们经常会遇到动态路径的图片无法显示的问题&#xff0c;以下是静态路径和动态路径的常见使用方法。 1.静态路径 在日常的开发中&#xff0c;图片的静态路径通过相对路径和绝对路径的方式引入。 相对路径&#xff1a;以.开头的&#xff0c;例如./、../之类的。就是…

LangChain+LLM实战---Langchain-Chatchat概述

LangChain介绍 LangChain是个开源的框架&#xff0c;它可以让AI开发人员把像GPT-4这样的大型语言模型(LLM)和外部数据结合起来。可以简单认为LangChain是LLM领域的Spring&#xff0c;以及开源版的ChatGPT插件系统。 LangChain的强大之处不仅能通过API调用语言模型&#xff0c;…

Panda3d 介绍

Panda3d 介绍 文章目录 Panda3d 介绍Panda3d 的安装Panda3d 的坐标系统介绍Panda3d 的运行Panda3d 加载一个熊猫父节点和子节点之间的关系 验证Panda3d 的坐标系统X 轴的平移Y 轴的平移Z 轴的平移X 轴的旋转Y 轴的旋转Z 轴的旋转 Panda3D是一个3D引擎:一个用于3D渲染和游戏开发…

为什么看了那么多测试技术帖,感觉自己还是菜?

作为测试新手&#xff0c;最爱莫过于看各大牛发的技术贴&#xff0c;这篇很牛叉&#xff0c;那篇也很有道理&#xff0c;似乎自己看着看着也会成为高手。然而几年后&#xff0c;发现自己对专业知识的理解乱的很&#xff0c;里面更有很多自相矛盾的地方&#xff0c;这到底是哪里…

iTransformer: INVERTED TRANSFORMERS ARE EFFECTIVE FOR TIME SERIES FORECASTING

#论文题目&#xff1a;ITRANSFORMER: INVERTED TRANSFORMERS ARE EFFECTIVE FOR TIME SERIES FORECASTING #论文地址&#xff1a;https://arxiv.org/abs/2310.06625 #论文源码开源地址&#xff1a;https://github.com/thuml/Time-Series-Library #论文所属会议&#xff1a;Mach…

Flask基本教程以及Jinjia2模板引擎简介

flask基本使用 直接看代码吧&#xff0c;非常容易上手&#xff1a; # 创建flask应用 app Flask(__name__)# 路由 app.route("/index", methods[GET]) def index():return "FLASK&#xff1a;欢迎访问主页&#xff01;"if __name__ "__main__"…

vulnhub靶机Venus

下载地址&#xff1a;The Planets: Venus ~ VulnHub 主机发现 arp-scan -l 端口扫描 nmap --min-rate 1000 -p- 192.168.21.132 端口版本扫描 nmap -sV -sT -O -p22,8080 192.168.21.132 对于http-alt HTTP Alternative Services 介绍 | JerryQu 的小站 (imququ.com) 总结…

[迁移学习]UniDAformer域自适应全景分割网络

原文的标题为&#xff1a;UniDAformer: Unified Domain Adaptive Panoptic Segmentation Transformer via Hierarchical Mask Calibration&#xff0c;发表于CVPR2023。 一、概述 域自适应全景分割是指利用一个或多个相关域中的现成标注数据来缓解语义分割数据标注复杂的问题。…

MyBatis的增删改查

2023.10.29 本章学习MyBatis的基本crud操作。 insert java程序如下&#xff1a; ①使用map集合传参 Testpublic void testInsertCar(){SqlSession sqlSession SqlSessionUtil.openSession();//先将数据放到Map集合中&#xff0c;在sql语句中使用 #{map集合的key} 来完成传…

Steger算法实现结构光光条中心提取(python版本)

Steger算法原理 对结构光进行光条中心提取时&#xff0c;Steger算法是以Hessian矩阵为基础的。它的基础步骤如下所示&#xff1a; 从Hessian矩阵中求出线激光条纹的法线方向在光条纹法线方向上将其灰度分布按照泰勒多项式展开&#xff0c;求取的极大值即为光条在该法线方向上…

【Flutter】自定义分段选择器Slider

【Flutter】ZFJ自定义分段选择器Slider 前言 在开发一个APP的时候&#xff0c;需要用到一个分段选择器&#xff0c;系统的不满足就自己自定义了一个&#xff1b; 可以自定义节点的数量、自定义节点的大小、自定义滑竿的粗细&#xff0c;自定义气泡的有无等等… 基本上满足你…

Springboot的Container Images,docker加springboot

Spring Boot应用程序可以使用Dockerfiles容器化&#xff0c;或者使用Cloud Native Buildpacks来创建优化的docker兼容的容器映像&#xff0c;您可以在任何地方运行。 1. Efficient Container Images 很容易将Spring Boot fat jar打包为docker映像。然而&#xff0c;像在docke…

合肥中科深谷嵌入式项目实战——人工智能与机械臂(三)

订阅&#xff1a;新手可以订阅我的其他专栏。免费阶段订阅量1000 python项目实战 Python编程基础教程系列&#xff08;零基础小白搬砖逆袭) 作者&#xff1a;爱吃饼干的小白鼠。Python领域优质创作者&#xff0c;2022年度博客新星top100入围&#xff0c;荣获多家平台专家称号。…

信号去噪之卡尔曼滤波

在前面的文章 卡尔曼滤波 中曾讲解过卡尔曼滤波在惯性导航和飞行姿态控制中的应用&#xff0c;今天来聊一聊卡尔曼滤波在信号去噪中的应用。 卡尔曼滤波&#xff08;Kalman Filtering&#xff09;是一种用于估计系统状态的数学方法&#xff0c;它通过考虑系统的动态模型和传感…