commons-lang3 基础工具类

commons-lang3提供了不少针对Java标准库的补充工具类,合理使用能够简化我们的代码,提高开发效率。这篇文章我们简单了解下commons-lang3提供的工具类和常见用法。

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

StringUtils 字符串工具类

在日常开发中,Java标准库的字符串方法可能不完全够用,比如判断前台页面表单传的值是否为空,我们通常既要判断变量是否为null,又要判断是否为空字符串,最后就不得不写出类似如下的代码:

if (s != null && !"".equals(s)) {
    // ...
}

这样就显得代码十分冗长,不利于阅读,而StringUtils则提供了工具方法,能够简化类似上述这种代码。

//判断字符串是否为空
public static boolean isEmpty(@Nullable CharSequence cs)
// 判断字符串是否不为空
public static boolean isNotEmpty(@Nullable CharSequence cs)

除此之外,StringUtils还有许多其他方法,我们可以根据自己需求选用。

RandomUtils 随机数工具类

RandomUtils能够简化随机数的获取方式。

获取随机的布尔值:

public static boolean nextBoolean()

获取指定范围内的随机数(范围包括头不包括尾):

public static int nextInt(int startInclusive,
                          int endExclusive)

NumberUtils 数字工具类

NumberUtils最常见的用法是判断字符串是否可以解析为数字,如果不使用NumberUtils可能需要正则表达式才能判断,或者通过捕捉Integer.parseInt等方法的异常来实现,显然更加麻烦。

指定字符串是否可解析为数字(包括小数):

public static boolean isParsable(String str)

指定字符串是否全部为数字(不包括小数点等字符):

public static boolean isDigits(String str)

DateUtils 日期工具类

Java自带的时间日期处理工具,使用起来比较麻烦,比如日期解析、格式化需要SimpleDateFormat,而日期加减又需要CalendarDateUtils对一些常用的操作进行了封装。

对时间增加若干年、月、天等:

public static java.util.Date addMilliseconds(@NotNull java.util.Date date, int amount)
public static java.util.Date addSeconds(@NotNull java.util.Date date, int amount)
public static java.util.Date addMinutes(@NotNull java.util.Date date, int amount)
public static java.util.Date addHours(@NotNull java.util.Date date, int amount)
public static java.util.Date addDays(@NotNull java.util.Date date, int amount)
public static java.util.Date addWeeks(@NotNull java.util.Date date, int amount)
public static java.util.Date addMonths(@NotNull java.util.Date date, int amount)
public static java.util.Date addYears(@NotNull java.util.Date date, int amount)

判断两个时间在指定位(年、月、天)上是否相等:

public static boolean truncatedEquals(@NotNull java.util.Date date1,
                                      @NotNull java.util.Date date2,
                                      int field)

注:field参数建议使用Calendar.YEARCalendar.MONTH等常量。

计算两个时间在指定位(年、月、天)上的差值:

public static int truncatedCompareTo(@NotNull java.util.Date date1,
                                     @NotNull java.util.Date date2,
                                     int field)

注:field参数建议使用Calendar.YEARCalendar.MONTH等常量。

SystemUtils 获取系统信息

SystemUtils这个工具类最常见的用法是获取一些系统信息,比如操作系统、当前JRE路径等,比较实用。下面例子代码能够输出当前的一些系统信息:

import org.apache.commons.lang3.*;

public class Main {
    public static void main(String[] args) {

        String hostName = SystemUtils.getHostName();
        String osName = SystemUtils.OS_NAME;
        String language = SystemUtils.USER_LANGUAGE;
        String javaVersion = SystemUtils.JAVA_VERSION;
        String javaHome = SystemUtils.JAVA_HOME;

        System.out.println("hostName " + hostName);
        System.out.println("osName " + osName);
        System.out.println("language " + language);
        System.out.println("javaVersion " + javaVersion);
        System.out.println("javaHome " + javaHome);

    }
}

输出结果如下。

hostName ubuntu
osName Linux
language en
javaVersion 1.8.0_181
javaHome /usr/lib/jvm/java-8-oracle/jre

此外,还有一个ArchUtils可以获取处理器的位数(x86、x86_64、IA64等),具体可以参考相关文档。

作者:Gacfox
版权声明:本网站为非盈利性质,文章如非特殊说明均为原创,版权遵循知识共享协议CC BY-NC-ND 4.0进行授权,转载必须署名,禁止用于商业目的或演绎修改后转载。
Copyright © 2017-2024 Gacfox All Rights Reserved.
Build with NextJS | Sitemap