isEmpty

public static boolean isEmpty(CharSequence cs)

常用函数之一,判断字符串是否为""或者null

 StringUtils.isEmpty(null)      = trueStringUtils.isEmpty("")        = trueStringUtils.isEmpty(" ")       = falseStringUtils.isEmpty("bob")     = falseStringUtils.isEmpty("  bob  ") = false

isNotEmpty

public static boolean isNotEmpty(CharSequence cs)

最常用函数之一,跟上面方法相对

 StringUtils.isNotEmpty(null)      = falseStringUtils.isNotEmpty("")        = falseStringUtils.isNotEmpty(" ")       = trueStringUtils.isNotEmpty("bob")     = trueStringUtils.isNotEmpty("  bob  ") = true

isAnyEmpty

public static boolean isAnyEmpty(CharSequence... css)

任意一个参数为空的话,返回true, 如果这些参数都不为空的话返回false。

在写一些判断条件的时候,这个方法还是很实用的。

 StringUtils.isAnyEmpty(null)             = trueStringUtils.isAnyEmpty(null, "foo")      = trueStringUtils.isAnyEmpty("", "bar")        = trueStringUtils.isAnyEmpty("bob", "")        = trueStringUtils.isAnyEmpty("  bob  ", null)  = trueStringUtils.isAnyEmpty(" ", "bar")       = falseStringUtils.isAnyEmpty("foo", "bar")     = false

isNoneEmpty

public static boolean isNoneEmpty(CharSequence... css)

任意一个参数是空,返回false 所有参数都不为空,返回true

注意这些方法的用法

 StringUtils.isNoneEmpty(null)             = falseStringUtils.isNoneEmpty(null, "foo")      = falseStringUtils.isNoneEmpty("", "bar")        = falseStringUtils.isNoneEmpty("bob", "")        = falseStringUtils.isNoneEmpty("  bob  ", null)  = falseStringUtils.isNoneEmpty(" ", "bar")       = trueStringUtils.isNoneEmpty("foo", "bar")     = true

isBlank

public static boolean isBlank(CharSequence cs)

判断字符对象是不是空字符串,注意与isEmpty的区别

 StringUtils.isBlank(null)      = trueStringUtils.isBlank("")        = trueStringUtils.isBlank(" ")       = trueStringUtils.isBlank("bob")     = falseStringUtils.isBlank("  bob  ") = false

isNotBlank

public static boolean isNotBlank(CharSequence cs)

原理同上

 StringUtils.isNotBlank(null)      = falseStringUtils.isNotBlank("")        = falseStringUtils.isNotBlank(" ")       = falseStringUtils.isNotBlank("bob")     = trueStringUtils.isNotBlank("  bob  ") = true

isAnyBlank

public static boolean isAnyBlank(CharSequence... css)
 StringUtils.isAnyBlank(null)             = trueStringUtils.isAnyBlank(null, "foo")      = trueStringUtils.isAnyBlank(null, null)       = trueStringUtils.isAnyBlank("", "bar")        = trueStringUtils.isAnyBlank("bob", "")        = trueStringUtils.isAnyBlank("  bob  ", null)  = trueStringUtils.isAnyBlank(" ", "bar")       = trueStringUtils.isAnyBlank("foo", "bar")     = false

isNoneBlank

public static boolean isNoneBlank(CharSequence... css)
 StringUtils.isNoneBlank(null)             = falseStringUtils.isNoneBlank(null, "foo")      = falseStringUtils.isNoneBlank(null, null)       = falseStringUtils.isNoneBlank("", "bar")        = falseStringUtils.isNoneBlank("bob", "")        = falseStringUtils.isNoneBlank("  bob  ", null)  = falseStringUtils.isNoneBlank(" ", "bar")       = falseStringUtils.isNoneBlank("foo", "bar")     = true

trim

public static String trim(String str)

移除字符串两端的空字符串,制表符char <= 32如:\n \t 如果为空的话,返回空

如果为""

 StringUtils.trim(null)          = nullStringUtils.trim("")            = ""StringUtils.trim("     ")       = ""StringUtils.trim("abc")         = "abc"StringUtils.trim("    abc    ") = "abc"

变体有

public static String trimToNull(String str)
public static String trimToEmpty(String str)

不常用,跟trim()方法类似

strip

public static String strip(String str)
public static String strip(String str, String stripChars)

str:被处理的字符串,可为空 stripChars: 删除的字符串,

 StringUtils.strip(null, *)          = nullStringUtils.strip("", *)            = ""StringUtils.strip("abc", null)      = "abc"StringUtils.strip("  abc", null)    = "abc"StringUtils.strip("abc  ", null)    = "abc"StringUtils.strip(" abc ", null)    = "abc"StringUtils.strip("  abcyx", "xyz") = "  abc"

equals

public static boolean equals(CharSequence cs1, CharSequence cs2)

字符串比对方法,是比较实用的方法之一,两个比较的字符串都能为空,不会报空指针异常。

 StringUtils.equals(null, null)   = trueStringUtils.equals(null, "abc")  = falseStringUtils.equals("abc", null)  = falseStringUtils.equals("abc", "abc") = trueStringUtils.equals("abc", "ABC") = false

equalsIgnoreCse

public static boolean equalsIgnoreCase(CharSequence str1, CharSequence str2)

上面方法的变体 字符串比较(忽略大小写),在验证码……等字符串比较,真是很实用。

StringUtils.equalsIgnoreCase(null, null)   = true
StringUtils.equalsIgnoreCase(null, "abc")  = false
StringUtils.equalsIgnoreCase("abc", null)  = false
StringUtils.equalsIgnoreCase("abc", "abc") = true
StringUtils.equalsIgnoreCase("abc", "ABC") = true

indexOf

public static int indexOf(CharSequence seq, int searchChar)

indexOf这个方法不必多说,这个方法主要处理掉了空字符串的问题,不会报空指针,有一定用处

 StringUtils.indexOf(null, *)         = -1StringUtils.indexOf("", *)           = -1StringUtils.indexOf("aabaabaa", 'a') = 0StringUtils.indexOf("aabaabaa", 'b') = 2

ordinalIndexOf

public static int ordinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)

字符串在另外一个字符串里,出现第Ordinal次的位置

 StringUtils.ordinalIndexOf(null, *, *)          = -1StringUtils.ordinalIndexOf(*, null, *)          = -1StringUtils.ordinalIndexOf("", "", *)           = 0StringUtils.ordinalIndexOf("aabaabaa", "a", 1)  = 0StringUtils.ordinalIndexOf("aabaabaa", "a", 2)  = 1StringUtils.ordinalIndexOf("aabaabaa", "b", 1)  = 2StringUtils.ordinalIndexOf("aabaabaa", "b", 2)  = 5StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4StringUtils.ordinalIndexOf("aabaabaa", "", 1)   = 0StringUtils.ordinalIndexOf("aabaabaa", "", 2)   = 0

lastIndexOf

public static int lastIndexOf(CharSequence seq, int searchChar)

字符串最后一次出现的位置

 StringUtils.lastIndexOf(null, *)         = -1StringUtils.lastIndexOf("", *)           = -1StringUtils.lastIndexOf("aabaabaa", 'a') = 7StringUtils.lastIndexOf("aabaabaa", 'b') = 5

lastOrdinalIndexOf

public static int lastOrdinalIndexOf(CharSequence str, CharSequence searchStr, int ordinal)

字符串searchStr在str里面出现倒数第ordinal出现的位置

 StringUtils.lastOrdinalIndexOf(null, *, *)          = -1StringUtils.lastOrdinalIndexOf(*, null, *)          = -1StringUtils.lastOrdinalIndexOf("", "", *)           = 0StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 1)  = 7StringUtils.lastOrdinalIndexOf("aabaabaa", "a", 2)  = 6StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 1)  = 5StringUtils.lastOrdinalIndexOf("aabaabaa", "b", 2)  = 2StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 1) = 4StringUtils.lastOrdinalIndexOf("aabaabaa", "ab", 2) = 1StringUtils.lastOrdinalIndexOf("aabaabaa", "", 1)   = 8StringUtils.lastOrdinalIndexOf("aabaabaa", "", 2)   = 8

contains

public static boolean contains(CharSequence seq, int searchChar)

字符串seq是否包含searchChar

 StringUtils.contains(null, *)    = falseStringUtils.contains("", *)      = falseStringUtils.contains("abc", 'a') = trueStringUtils.contains("abc", 'z') = false

containsAny

public static boolean containsAny(CharSequence cs, char... searchChars)

包含后面数组中的任意对象,返回true

 StringUtils.containsAny(null, *)                = falseStringUtils.containsAny("", *)                  = falseStringUtils.containsAny(*, null)                = falseStringUtils.containsAny(*, [])                  = falseStringUtils.containsAny("zzabyycdxx",['z','a']) = trueStringUtils.containsAny("zzabyycdxx",['b','y']) = trueStringUtils.containsAny("aba", ['z'])           = false

substring

public static String substring(String str, int start)

字符串截取

 StringUtils.substring(null, *)   = nullStringUtils.substring("", *)     = ""StringUtils.substring("abc", 0)  = "abc"StringUtils.substring("abc", 2)  = "c"StringUtils.substring("abc", 4)  = ""StringUtils.substring("abc", -2) = "bc"StringUtils.substring("abc", -4) = "abc"

left right mid

public static String left(String str, int len)
public static String right(String str, int len)
public static String mid(String str, int pos, int len)

这三个方法类似都是截取字符串

split

public static String[] split(String str, String separatorChars)

字符串分割

 StringUtils.split(null, *)         = nullStringUtils.split("", *)           = []StringUtils.split("abc def", null) = ["abc", "def"]StringUtils.split("abc def", " ")  = ["abc", "def"]StringUtils.split("abc  def", " ") = ["abc", "def"]StringUtils.split("ab:cd:ef", ":") = ["ab", "cd", "ef"]

join

public static <T> String join(T... elements)

字符串连接

 StringUtils.join(null)            = nullStringUtils.join([])              = ""StringUtils.join([null])          = ""StringUtils.join(["a", "b", "c"]) = "abc"StringUtils.join([null, "", "a"]) = "a"

join

public static String join(Object[] array, char separator)

特定字符串连接数组,很多情况下还是蛮实用,不用自己取拼字符串

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

deleteWhitespace

public static String deleteWhitespace(String str)

删除空格

 StringUtils.deleteWhitespace(null)         = nullStringUtils.deleteWhitespace("")           = ""StringUtils.deleteWhitespace("abc")        = "abc"StringUtils.deleteWhitespace("   ab  c  ") = "abc"

removeStart

public static String removeStart(String str, String remove)

删除以特定字符串开头的字符串,如果没有的话,就不删除。

 StringUtils.removeStart(null, *)      = nullStringUtils.removeStart("", *)        = ""StringUtils.removeStart(*, null)      = *StringUtils.removeStart("www.domain.com", "www.")   = "domain.com"StringUtils.removeStart("domain.com", "www.")       = "domain.com"StringUtils.removeStart("www.domain.com", "domain") = "www.domain.com"StringUtils.removeStart("abc", "")    = "abc"

rightPad

public static String rightPad(String str, int size, char padChar)

生成订单号,的时候还是很实用的。右边自动补齐。

 StringUtils.rightPad(null, *, *)     = nullStringUtils.rightPad("", 3, 'z')     = "zzz"StringUtils.rightPad("bat", 3, 'z')  = "bat"StringUtils.rightPad("bat", 5, 'z')  = "batzz"StringUtils.rightPad("bat", 1, 'z')  = "bat"StringUtils.rightPad("bat", -1, 'z') = "bat"

leftPad

public static String leftPad(String str, int size, char padChar)

左边自动补齐

 StringUtils.leftPad(null, *, *)     = nullStringUtils.leftPad("", 3, 'z')     = "zzz"StringUtils.leftPad("bat", 3, 'z')  = "bat"StringUtils.leftPad("bat", 5, 'z')  = "zzbat"StringUtils.leftPad("bat", 1, 'z')  = "bat"StringUtils.leftPad("bat", -1, 'z') = "bat"

center

public static String center(String str, int size)

将字符在某特定长度下,句子

 StringUtils.center(null, *)   = nullStringUtils.center("", 4)     = "    "StringUtils.center("ab", -1)  = "ab"StringUtils.center("ab", 4)   = " ab "StringUtils.center("abcd", 2) = "abcd"StringUtils.center("a", 4)    = " a  "

capitalize

public static String capitalize(String str)

首字母大写

 StringUtils.capitalize(null)  = nullStringUtils.capitalize("")    = ""StringUtils.capitalize("cat") = "Cat"StringUtils.capitalize("cAt") = "CAt"

swapCase

public static String swapCase(String str)

反向大小写

 StringUtils.swapCase(null)                 = nullStringUtils.swapCase("")                   = ""StringUtils.swapCase("The dog has a BONE") = "tHE DOG HAS A bone"

isAlpha

public static boolean isAlpha(CharSequence cs)

判断字符串是否由字母组成

StringUtils.isAlpha(null)   = falseStringUtils.isAlpha("")     = falseStringUtils.isAlpha("  ")   = falseStringUtils.isAlpha("abc")  = trueStringUtils.isAlpha("ab2c") = falseStringUtils.isAlpha("ab-c") = false

defaultString

public static String defaultString(String str, String defaultStr)

默认字符串,相当于三目运算,前面弱为空,则返回后面一个参数

 StringUtils.defaultString(null, "NULL")  = "NULL"StringUtils.defaultString("", "NULL")    = ""StringUtils.defaultString("bat", "NULL") = "bat"

reverse

public static String reverse(String str)

字符串翻转

 StringUtils.reverse(null)  = nullStringUtils.reverse("")    = ""StringUtils.reverse("bat") = "tab"

abbreviate

public static String abbreviate(String str, int maxWidth)

缩略字符串, 省略号要占三位。maxWith小于3位会报错。

 StringUtils.abbreviate(null, *)      = nullStringUtils.abbreviate("", 4)        = ""StringUtils.abbreviate("abcdefg", 6) = "abc..."StringUtils.abbreviate("abcdefg", 7) = "abcdefg"StringUtils.abbreviate("abcdefg", 8) = "abcdefg"StringUtils.abbreviate("abcdefg", 4) = "a..."StringUtils.abbreviate("abcdefg", 3) = IllegalArgumentException
public static String abbreviate(String str, int offset, int maxWidth)

缩略字符串的一些高级用法

 StringUtils.abbreviate(null, *, *)                = nullStringUtils.abbreviate("", 0, 4)                  = ""StringUtils.abbreviate("abcdefghijklmno", -1, 10) = "abcdefg..."StringUtils.abbreviate("abcdefghijklmno", 0, 10)  = "abcdefg..."StringUtils.abbreviate("abcdefghijklmno", 1, 10)  = "abcdefg..."StringUtils.abbreviate("abcdefghijklmno", 4, 10)  = "abcdefg..."StringUtils.abbreviate("abcdefghijklmno", 5, 10)  = "...fghi..."StringUtils.abbreviate("abcdefghijklmno", 6, 10)  = "...ghij..."StringUtils.abbreviate("abcdefghijklmno", 8, 10)  = "...ijklmno"StringUtils.abbreviate("abcdefghijklmno", 10, 10) = "...ijklmno"StringUtils.abbreviate("abcdefghijklmno", 12, 10) = "...ijklmno"StringUtils.abbreviate("abcdefghij", 0, 3)        = IllegalArgumentExceptionStringUtils.abbreviate("abcdefghij", 5, 6)        = IllegalArgumentException

warp

public static String wrap(String str, char wrapWith)

包装,用后面的字符串对前面的字符串进行包装

 StringUtils.wrap(null, *)        = nullStringUtils.wrap("", *)          = ""StringUtils.wrap("ab", '\0')     = "ab"StringUtils.wrap("ab", 'x')      = "xabx"StringUtils.wrap("ab", '\'')     = "'ab'"StringUtils.wrap("\"ab\"", '\"') = "\"\"ab\"\""

转载于:https://my.oschina.net/tensai/blog/3012993

CommonLang3中的StringUtils最全解析相关推荐

  1. java lock unlock_【Java并发007】原理层面:ReentrantLock中lock()、unlock()全解析

    一.前言 Java线程同步两种方式,synchronized关键字和Lock锁机制,其中,AQS队列就是Lock锁实现公平加锁的底层支持. 二.AQS源码对于lock.lock()的实现 2.1 AQ ...

  2. Java中事务的处理全解析

    ava的事务处理,如果对数据库进行多次操作,每一次的执行或步骤都是一个事务.如果数据库操作在某一步没有执行或出现异常而导致事务失败,这样有的事务被执行有的就没有被执行,从而就有了事务的回滚,取消先前的 ...

  3. Java中的泛型全解析(二)

    Java中的泛型全解析(一) 泛型中的约束和局限性 现在我们有泛型类 不能用基本类型实例化类型参数 运行时类型查询只适用于原始类型 泛型类的静态上下文中类型变量失效 不能在静态域或方法中引用类型变量. ...

  4. Java中的泛型全解析(一)

    为什么我们需要泛型? 通过两段代码我们就可以知道为何我们需要泛型 实际开发中,经常有数值类型求和的需求,例如实现int类型的加法, 有时候还需要实现long类型的求和, 如果还需要double类型的求 ...

  5. Ol3中Map事件全解析

    Ol3中Map事件全解析 本文将粗略对ol3 基本地图事件进行研究. 地图点击事件 singleclick:地图单击事件. dblclick:地图双击事件. click:地图点击事件. 测试 map. ...

  6. 废话中的极品废话 单反对焦系统全解析

    前言 测光的问题在不久前刚刚讨论完(参见:<明白的糊涂账 各家单反测光系统全解析>),接下来轮到对焦了! 对焦!我们同样用愉快的方式解决这个问题,首先我们要确定两点,第一,这篇文章不会太深 ...

  7. Gson项目使用全解析

    Gson项目使用全解析 概述 json的解析jar包很多,有gson,fastjson,net.sf.json,org.json等等,做为开发人员只要了解一种或2种工具即可,人推荐gson和fastj ...

  8. Go modules基础精进,六大核心概念全解析(下)

    Go 语言做开发时,路径是如何定义的?Go Mudules又为此带来了哪些改变?本文将会全面介绍Go Modules六大核心概念,包括了设计理念与兼容性原则等,掌握这些技术点对于管理和维护Go 模块有 ...

  9. 第四章:Spring项目文件上传两种方式(全解析)

    欢迎查看Java开发之上帝之眼系列教程,如果您正在为Java后端庞大的体系所困扰,如果您正在为各种繁出不穷的技术和各种框架所迷茫,那么本系列文章将带您窥探Java庞大的体系.本系列教程希望您能站在上帝 ...

最新文章

  1. cocos2d-x游戏循环与调度
  2. python笔记:fancyimpute
  3. wxWidgets:窗口删除
  4. python语句分为_python以什么划分语句块
  5. [No000014A]Linux简介与shell编程
  6. 如何下载Lucene.net源码
  7. zabbix_server
  8. python 获取错误日志,并发送邮件
  9. Memcacher win7 安装测试
  10. python-snap7的安装记录
  11. (八)、MultipartFile
  12. 程序员能考哪些证书?这个几个不能少
  13. UVa 12911 Subset Sum
  14. bootstrap-select 的多选+模糊查询下拉框详解(官方示例文档解读)
  15. 英语语法中的同位语和插入语
  16. android 首页里布局,android复杂首页布局
  17. 【GO MICRO V3】protoc-gen-micro 生成proto代码
  18. JSP Web编程的设计过程
  19. 落枕的原因 神奇穴位 预防落枕
  20. 中国汽车检测行业投资现状及发展战略规划报告2022-2028年版

热门文章

  1. 解决C++代码单元测试中的难题-不可验证和IO调用
  2. 敏捷个人第五次练习:个人使命宣言
  3. 【ORACLE 高可用】作业 :配置ORACLE GoldenGate 2
  4. 利用Windows API获得系统高级功能
  5. OpenCV调用TensorFlow预训练模型
  6. Python Day28
  7. 【Android布局】在程序中设置android:gravity 和 android:layout_Gravity属性
  8. [iPhoneアプリ]iEscaper2攻略その6|龍の水晶
  9. 【转】VS.NET2003 调试无法启动
  10. Java并发——结合CountDownLatch源码、Semaphore源码及ReentrantLock源码来看AQS原理