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

news2024/9/27 19:16:09

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

工具库介绍

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 来处理字符串、日期、数值、数组、系统属性、反射等多个常见任务。
欢迎多多交流探讨。。。。。。

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

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

相关文章

3.6每日一题(线性方程求通解)

1、判断类型选择方法&#xff1a;发现以y为未知函数&#xff0c;以x为自变量&#xff0c;不符合我们学过的类型 2、此时有两种方法&#xff1a; &#xff08;1&#xff09;x 与 y 对调&#xff0c;此时 x 为未知函数&#xff0c;y 为自变量 &#xff08;2&#xff09;变量代换…

【Mybatis-Plus】常见的@table类注解

目录 引入Mybatis-Plus依赖 TableName 当实体类的类名在转成小写后和数据库表名相同时 当实体类的类名在转成小写后和数据库表名不相同时 Tableld TableField 当数据库字段名与实体类成员不一致 成员变量名以is开头&#xff0c;且是布尔值 ​编辑 成员变量名与数据库关…

轻量级 IDE 文本编辑器 Geany 发布 2.0

Geany 是功能强大、稳定、轻量的开发者专用文本编辑器&#xff0c;支持 Linux、Windows 和 macOS&#xff0c;内置支持 50 多种编程语言。 2005 年Geany 发布首个版本 0.1。上周四刚好是 Geany 诞生 18 周年纪念日&#xff0c;官方发布了 2.0 正式版以表庆祝。 下载地址&#…

小红书app拉新上线了 适合网推社群和校园渠道作业

小红书app签到拉新上线了可以通过“聚量推客”进行申请&#xff0c;下面大概是要求和流程 要求网推社群渠道或者地推校园渠道&#xff0c;其它类型渠道禁止

R语言绘图-5-条形图(修改坐标轴以及图例等)

0. 说明&#xff1a; 1. 绘制条形图&#xff1b; 2. 添加文本并调整位置&#xff1b; 3. 调整x轴刻度的字体、角度及颜色&#xff1b; 4. 在导出pdf时&#xff0c;如果没有字体&#xff0c;该怎么解决问题&#xff1b; 1. 结果&#xff1a; 2. 代码&#xff1a; library(ggp…

sql--索引使用 ---覆盖索引

覆盖索引 Select 后接 * 走id索引才是最优&#xff0c;使用二级索引则需要回表&#xff08;性能稍差&#xff09; 前缀索引 Create index 索引名 on 表名( 字段名( n ) ) n数字 n代表提取这个字符串的n个构建索引 &#xff1f;&#xff1f;那么 n 为几性能是最好的呢&…

测试C#调用Aplayer播放视频(1:加载Aplayer控件)

微信公众号“Dotnet跨平台”的文章《开源精品&#xff0c;使用 C# 开发的 KTV 点歌项目》中使用了迅雷开源APlayer播放引擎。最近在学习有哪些能拿来播放视频的组件或控件&#xff0c;于是准备试试&#xff0c;根据文章中的介绍&#xff0c;在迅雷APlayer播放引擎网站中下载了A…

计算机出现msvcr110.dll文件丢失问题的五种常见方法

msvcr110.dll是Microsoft Visual C Redistributable的一部分&#xff0c;它是Windows操作系统上的一个动态链接库文件。它包含了许多与C编程相关的函数和库&#xff0c;用于支持应用程序的运行。如果电脑上缺少msvcr110.dll文件&#xff0c;可能会导致一些应用程序无法正常运行…

TiDB x 汉口银行丨分布式数据库应用实践

汉口银行是一家城市商业银行&#xff0c;近年来专注科技金融、民生金融等领域。在数据库国产化改造中&#xff0c;汉口银行引入了 TiDB 数据库&#xff0c;并将其应用在重要业务系统&#xff1a;头寸系统中&#xff0c;实现了一栈式的数据服务&#xff0c;同时满足了高并发、低…

论文范文:论面向服务的架构

网络文章,仅供学习,建议您考试不要抄范文哦!摘要:2016年8月,我参与了胶凝砂砾石坝施工质量监控系统的开发工作,该系统旨在帮助水利工程建设法人单位、施工企业、监理机构及相关政府部门解决水利工程建设施工质量监控和工程项目管理等问题。我在该项目中担任系统架构设计师…

MDM如何实现不同场景的数据管理

MDM基础数据平台主要是进行清洗和治理企业的主数据&#xff0c;使企业的主数据具有唯一性、准确性、一致性和及时性&#xff0c;但平台在不同的场景中起到的作用也不同。 不同项目的MDM作用不同&#xff0c;在数据中台中MDM主要是作为维度表和一些基础数据的数据上报功能&…

Linux——Linux权限

Linux权限 前言一、shell命令以及运行原理二、Linux权限的概念Linux权限管理文件访问者的分类&#xff08;人&#xff09;文件类型和访问权限&#xff08;事物属性&#xff09;文件权限值的表示方法文件访问权限的相关设置方法 file指令目录的权限粘滞位 总结 前言 linux的学习…

Android多张图片rotation旋转角度叠加/重叠堆放

Android多张图片rotation旋转角度叠加/重叠堆放 <?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"xmlns:app"http://schemas.android.com/apk/res-auto"…

Panda3d 介绍

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

C++ 自引用指针this(整理)

使用例子&#xff1a; #include <iostream> #include <Windows.h> using namespace std; class A { public:A(int x1){x x1;}void disp(){cout<<"this"<<this<<" when x"<<this->x<<endl;} private:int x;…

MSQL系列(十二) Mysql实战-为什么索引要建立在被驱动表上

Mysql实战-left/right/inner join 使用详解 前面我们讲解了BTree的索引结构&#xff0c;也详细讲解下 left Join的底层驱动表 选择原理&#xff0c;那么今天我们来实战一下 left join&#xff0c;right join&#xff0c;inner join 等sql命令&#xff0c;看看到底如何用以及如…

MySQL主从复制延时

主从复制原理 MySQL主从复制是MySQL数据库中一种数据备份和数据同步的方式。它将一台MySQL服务器&#xff08;主服务器&#xff09;的数据同步到另外一台MySQL服务器&#xff08;从服务器&#xff09;。主服务器是数据的提供者&#xff0c;而从服务器是数据的接收者。主从复制…

23秋季学期期中考核(密码题)

师兄新学的Decode姿势 题目给出的 const SM4 require("gm-crypt").sm4; var payload "inu7s0XGslLFsPe0xok/nxqwtceG0cuMoh7hBbpwyNBrn3g/lMdcFYobv/KeRgWwI/TIA4qMtjqpNKOet E3TD0gWoSknGF6OhkRJ3LxrNUZ/Mi8ISz3xrDLawIY8NwbalYcQUGWtVjdC3nJL…

对象补充-原型和函数原型-创建对象

defineProperties可以定义多个属性描述符 var obj {// 私有属性&#xff08;js里面是没有严格意义的私有属性&#xff09;_age: 18,_eat: function() {} }Object.defineProperties(obj, {name: {configurable: true,enumerable: true,writable: true,value: "why"}…

软件测试面试高频30道面试题

如果哪个测试经理在看我的文章&#xff0c;希望对面试者要微笑&#xff0c;不然面试结束&#xff0c;出门之后就一万个草泥马奔腾而过&#xff0c;其实面试者并不是希望你给他们什么&#xff0c;而是一种尊重&#xff0c;平等的谈话&#xff0c;不要高高在上感觉自己超牛逼一样…