当前位置 : 首页 » 文章分类 :  开发  »  Apache-Commons-Lang使用笔记

Apache-Commons-Lang使用笔记

Apache-Commons-Lang使用笔记

Apache Commons Lang 官网
https://commons.apache.org/proper/commons-lang/

Apache Commons Lang 3 官方API文档
https://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html


StopWatch

StopWatch 是 apache commons lang3 包下的一个任务执行时间监视器

主要方法:
start(); //开始计时
split(); //设置split点
getSplitTime(); //获取从start 到 最后一次split的时间。调用start()方法到最后一次调用split()方法耗用的时间
reset(); //重置计时
suspend(); //暂停计时, 直到调用resume()后才恢复计时
resume(); //恢复计时
stop(); //停止计时
getTime(); //如果已stop(),统计start到stop的时间;如果未stop,统计从start到现在的时间

import org.apache.commons.lang3.time.StopWatch;

public class StopWatchTest
{
    public static void main(String[] args) throws InterruptedException {
    StopWatch watch = new StopWatch();
    watch.start(); // 开始计时

    Thread.sleep(1000);
    System.out.println(watch.getTime()); // 统计从start开始经历的时间
    watch.split(); //设置分割点

    //统计计时点
    Thread.sleep(1000);
    System.out.println(watch.getTime() - watch.getSplitTime()); //当前时间到上一次分割点的时间差
    watch.split(); //设置分割点

    Thread.sleep(1000);
    System.out.println(watch.getTime() - watch.getSplitTime()); //当前时间到上一次分割点的时间差
    watch.split(); //设置分割点

    System.out.println(watch.getTime()); // 统计从start开始经历的时间,即整个方法所用的时间
  }
}

StringUtils

package org.apache.commons.lang3;
public class StringUtils

substringBefore()

public static String substringBefore(String str, String separator)
返回字符串 str 中分隔符 separator 第一次出现位置左侧的子串, 分隔符本身不返回。

StringUtils.substringBefore(null, *)      = null
StringUtils.substringBefore("", *)        = ""
StringUtils.substringBefore("abc", "a")   = ""
StringUtils.substringBefore("abcba", "b") = "a"
StringUtils.substringBefore("abc", "c")   = "ab"
StringUtils.substringBefore("abc", "d")   = "abc"
StringUtils.substringBefore("abc", "")    = ""
StringUtils.substringBefore("abc", null)  = "abc"

isNotBlank() 非空白

public static boolean isNotBlank(CharSequence cs)
当字符传非null、非””,并且不是全部空白(空格)时,才返回true

StringUtils.isNotBlank(null)      = false
StringUtils.isNotBlank("")        = false
StringUtils.isNotBlank(" ")       = false
StringUtils.isNotBlank("bob")     = true
StringUtils.isNotBlank("  bob  ") = true

isNotEmpty() 非空

public static boolean isNotEmpty(CharSequence cs)
当字符串非null,非””时返回true,空白返回true

StringUtils.isNotEmpty(null)      = false
StringUtils.isNotEmpty("")        = false
StringUtils.isNotEmpty(" ")       = true
StringUtils.isNotEmpty("bob")     = true
StringUtils.isNotEmpty("  bob  ") = true

isNoneBlank() 全部非空白

public static boolean isNoneBlank(CharSequence... css)
当所有参数字符串都 非null、非””、非空白 时,返回true

public static boolean isNoneBlank(final CharSequence... css) {
  return !isAnyBlank(css);
}
 StringUtils.isNoneBlank((String) null)    = false
 StringUtils.isNoneBlank((String[]) null)  = true
 StringUtils.isNoneBlank(null, "foo")      = false
 StringUtils.isNoneBlank(null, null)       = false
 StringUtils.isNoneBlank("", "bar")        = false
 StringUtils.isNoneBlank("bob", "")        = false
 StringUtils.isNoneBlank("  bob  ", null)  = false
 StringUtils.isNoneBlank(" ", "bar")       = false
 StringUtils.isNoneBlank(new String[] {})  = true
 StringUtils.isNoneBlank(new String[]{""}) = false
 StringUtils.isNoneBlank("foo", "bar")     = true

isNoneEmpty() 全部非空

public static boolean isNoneEmpty(CharSequence... css)
当所有参数字符串都 非null、非”” 时,返回true

 StringUtils.isNoneEmpty((String) null)    = false
 StringUtils.isNoneEmpty((String[]) null)  = true
 StringUtils.isNoneEmpty(null, "foo")      = false
 StringUtils.isNoneEmpty("", "bar")        = false
 StringUtils.isNoneEmpty("bob", "")        = false
 StringUtils.isNoneEmpty("  bob  ", null)  = false
 StringUtils.isNoneEmpty(new String[] {})  = true
 StringUtils.isNoneEmpty(new String[]{""}) = false
 StringUtils.isNoneEmpty(" ", "bar")       = true
 StringUtils.isNoneEmpty("foo", "bar")     = true

isAllBlank() 全是空白

public static boolean isAllBlank(final CharSequence... css)
所有串都是空白时返回true

StringUtils.isAllBlank(null)             = true
StringUtils.isAllBlank(null, "foo")      = false
StringUtils.isAllBlank(null, null)       = true
StringUtils.isAllBlank("", "bar")        = false
StringUtils.isAllBlank("bob", "")        = false
StringUtils.isAllBlank("  bob  ", null)  = false
StringUtils.isAllBlank(" ", "bar")       = false
StringUtils.isAllBlank("foo", "bar")     = false
StringUtils.isAllBlank(new String[] {})  = true

isAnyBlank() 有任意一个是空白则true

public static boolean isAnyBlank(CharSequence... css)

StringUtils.isAnyBlank(null)             = true
StringUtils.isAnyBlank(null, "foo")      = true
StringUtils.isAnyBlank(null, null)       = true
StringUtils.isAnyBlank("", "bar")        = true
StringUtils.isAnyBlank("bob", "")        = true
StringUtils.isAnyBlank("  bob  ", null)  = true
StringUtils.isAnyBlank(" ", "bar")       = true
StringUtils.isAnyBlank("foo", "bar")     = false

equalsIgnoreCase(a, b) 字符串是否相等

相等返回true,可传入null比较,不用怕空指针异常

join() 字符串拼接

public static String join(Object[] array, char separator)
字符串数组串接

StringUtils.join(null, *);               // null
StringUtils.join([], *);                 // ""
StringUtils.join([null], *);             // ""
StringUtils.join(["a", "b", "c"], ';');  // "a;b;c"
StringUtils.join(["a", "b", "c"], null); // "abc"
StringUtils.join([null, "", "a"], ';');  // ";;a"

List转逗号分隔字符串

String str = StringUtils.join(Arrays.asList("Milan", "London", "New York", "San Francisco"), ",");

split() 字符串分隔

逗号分隔字符串转List

利用Apache Commons的StringUtils

String str = "a,b,c";
List<String> result = Arrays.asList(StringUtils.split(str,","));

isNumeric() 判断是否数字

public static boolean isNumeric(CharSequence cs)
StringUtils.isNumeric(“1111”);

replace() 替换

public static String replace(final String text, final String searchString, final String replacement)
将 text 中的所有 searchString 替换为 replacement, 搜索时区分大小写
注意 text 本身不会被修改,替换后的传通过返回值返回。

public static String replace(final String text, final String searchString, final String replacement, int max)
max: 最多替换 max 个, max为-1时表示不限制即替换所有

StringUtils.replace(null, *, *)        = null
StringUtils.replace("", *, *)          = ""
StringUtils.replace("any", null, *)    = "any"
StringUtils.replace("any", *, null)    = "any"
StringUtils.replace("any", "", *)      = "any"
StringUtils.replace("aba", "a", null)  = "aba"
StringUtils.replace("aba", "a", "")    = "b"
StringUtils.replace("aba", "a", "z")   = "zbz"

replacePattern() 正则匹配替换

public static String replacePattern(final String source, final String regex, final String replacement)

String regex = "\\d{1,3}(\\.\\d{1,3}){3}"; // ipv4正则
String ret = StringUtils.replacePattern("http://192.167.1.1/image/001.jpg", regex, "127.0.0.1:8080");

removeStartIgnoreCase()从开头删除

StringUtils.removeStartIgnoreCase(null, *)      = null
StringUtils.removeStartIgnoreCase("", *)        = ""
StringUtils.removeStartIgnoreCase(*, null)      = *
StringUtils.removeStartIgnoreCase("www.domain.com", "www.")   = "domain.com"
StringUtils.removeStartIgnoreCase("www.domain.com", "WWW.")   = "domain.com"
StringUtils.removeStartIgnoreCase("domain.com", "www.")       = "domain.com"
StringUtils.removeStartIgnoreCase("www.domain.com", "domain") = "www.domain.com"
StringUtils.removeStartIgnoreCase("abc", "")    = "abc"

例如

// 处理 host, 去掉开头的 www.
if (StringUtils.startsWithIgnoreCase(request.getHost(), "www.")) {
    request.setHost(StringUtils.removeStartIgnoreCase(request.getHost(), "www."));
}

removeEndIgnoreCase() 从尾部删除

StringUtils.removeEndIgnoreCase(null, *)      = null
StringUtils.removeEndIgnoreCase("", *)        = ""
StringUtils.removeEndIgnoreCase(*, null)      = *
StringUtils.removeEndIgnoreCase("www.domain.com", ".com.")  = "www.domain.com"
StringUtils.removeEndIgnoreCase("www.domain.com", ".com")   = "www.domain"
StringUtils.removeEndIgnoreCase("www.domain.com", "domain") = "www.domain.com"
StringUtils.removeEndIgnoreCase("abc", "")    = "abc"
StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain")
StringUtils.removeEndIgnoreCase("www.domain.COM", ".com") = "www.domain")

例如

// 文章 title 结尾
private static final String TITLE_SUFFIX = " | 小马的笔记";
// 处理 title, 去掉结尾的 | 小马的笔记
if (StringUtils.endsWithIgnoreCase(title, TITLE_SUFFIX)) {
    title = StringUtils.removeEndIgnoreCase(title, TITLE_SUFFIX);
}

ObjectUtils

allNotNull()全不是null

public static boolean allNotNull(Object... values)
所有值都不是 null 是返回 true

ObjectUtils.allNotNull(*)             = true
ObjectUtils.allNotNull(*, *)          = true
ObjectUtils.allNotNull(null)          = false
ObjectUtils.allNotNull(null, null)    = false
ObjectUtils.allNotNull(null, *)       = false
ObjectUtils.allNotNull(*, null)       = false
ObjectUtils.allNotNull(*, *, null, *) = false

上一篇 Apache-Commons-Collections使用笔记

下一篇 Java-Bean Validation

阅读
评论
1,328
阅读预计7分钟
创建日期 2018-06-29
修改日期 2020-09-24
类别

页面信息

location:
protocol:
host:
hostname:
origin:
pathname:
href:
document:
referrer:
navigator:
platform:
userAgent:

评论