StringUtils方法概览

  • IsEmpty/IsBlank - checks if a String contains text
  • IsEmpty/IsBlank – 检查字符串是否有内容。
  • Trim/Strip - removes leading and trailing whitespace
  • Trim/Strip – 删除字符串开始和结尾的空白符。
  • Equals - compares two strings null-safe
  • Equals – 比较两个字符串null安全。
  • IndexOf/LastIndexOf/Contains - null-safe index-of checks
  • IndexOf/LastIndexOf/Contains – null安全的索引检查。
  • IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut - index-of any of a set of Strings
  • IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut – 字符串集合索引检查。
  • ContainsOnly/ContainsNone - does String contains only/none of these characters
  • ContainsOnly/ContainsNone – 字符在字符串中出现一次或一次也没有出现。
  • Substring/Left/Right/Mid - null-safe substring extractions
  • Substring/Left/Right/Mid – null安全子串的提取。
  • SubstringBefore/SubstringAfter/SubstringBetween - substring extraction relative to other strings
  • SubstringBefore/SubstringAfter/SubstringBetween – 子串提取依赖其它字符串。
  • Split/Join - splits a String into an array of substrings and vice versa
  • Split/Join – 字符串拆分为子串的字符串数组,反之亦然。
  • Remove/Delete - removes part of a String
  • Remove/Delete – 删除部分字符串。
  • Replace/Overlay - Searches a String and replaces one String with another
  • Replace/Overlay – 替换字符串的部分字符。
  • Chomp/Chop - removes the last part of a String
  • Chomp/Chop – 删除字符串最后的字符。
  • LeftPad/RightPad/Center/Repeat - pads a String
  • LeftPad/RightPad/Center/Repeat – 补字符串。
  • UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize - changes the case of a String
  • UpperCase/LowerCase/SwapCase/Capitalize/Uncapitalize – 改变字符串的大小写。
  • CountMatches - counts the number of occurrences of one String in another
  • CountMatches – 计算一个字符或字符串在另外一个字符串出现的次数。
  • IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable - checks the characters in a String
  • IsAlpha/IsNumeric/IsWhitespace/IsAsciiPrintable – 判断字符是否在字符串中。
  • DefaultString - protects against a null input String
  • DefaultString –null安全,null转换为字符串。
  • Reverse/ReverseDelimited - reverses a String
  • Reverse/ReverseDelimited – 反转字符串。
  • Abbreviate - abbreviates a string using ellipsis
  • Abbreviate – 缩写字符串用省略符。
  • Difference - compares two Strings and reports on their differences
  • Difference – 比较两个字符串并且返回不同。
  • LevensteinDistance - the number of changes needed to change one String into another
  • LevensteinDistance – 一个字符串改变为另一个字符串需要改变的数量。

判空函数

  1. StringUtils.isEmpty(String str)
  2. StringUtils.isNotEmpty(String str)
  3. StringUtils.isBlank(String str)
  4. StringUtils.isNotBlank(String str)
  5. StringUtils.isWhitespace(CharSequence cs)
  • isWhitespace判断空白
 StringUtils.isWhitespace(null)   = false
StringUtils.isWhitespace("") = true
StringUtils.isWhitespace(" ") = true
StringUtils.isWhitespace("abc") = false
StringUtils.isWhitespace("ab2c") = false
StringUtils.isWhitespace("ab-c") = false
  • isBlank和isEmpty的区别(isNotBlank = !isBlank  Empty同理)
    public static boolean isBlank(String str) {
int strLen;
if (str == null || (strLen = str.length()) == 0) {
return true;
}
for (int i = 0; i < strLen; i++) {
if ((Character.isWhitespace(str.charAt(i)) == false)) {
return false;
}
}
return true;
}
 StringUtils.isBlank(null)      = true
StringUtils.isBlank("") = true
StringUtils.isBlank(" ") = true
StringUtils.isBlank("bob") = false
StringUtils.isBlank(" bob ") = false StringUtils.isEmpty(null) = true
StringUtils.isEmpty("") = true
StringUtils.isEmpty(" ") = false
StringUtils.isEmpty("bob") = false
StringUtils.isEmpty(" bob ") = false

删除函数

  1. StringUtils.remove(String str, char remove)
  2. StringUtils.remove(String str, String remove)
  3. StringUtils.removeEnd(String str, String remove)
  4. StringUtils.removeEndIgnoreCase(String str, String remove)
  5. StringUtils.removeStart(String str, String remove)
  6. StringUtils.removeStartIgnoreCase(String str, String remove)
  7. StringUtils.deleteWhitespace(String str)
  • 例子
//删除字符
StringUtils.remove("queued", 'u') = "qeed" //删除字符串
StringUtils.remove("queued", "ue") = "qd" //删除结尾匹配的字符串
StringUtils.removeEnd("www.domain.com", ".com") = "www.domain" //删除结尾匹配的字符串,找都不到返回原字符串
StringUtils.removeEnd("www.domain.com", "domain") = "www.domain.com" //忽略大小写的
StringUtils.removeEndIgnoreCase("www.domain.com", ".COM") = "www.domain") //删除所有空白(好用)
StringUtils.deleteWhitespace("abc") = "abc"
StringUtils.deleteWhitespace(" ab c ") = "abc"

替换函数

  1. replace(String text, String searchString, String replacement)
  2. replace(String text, String searchString, String replacement, int max)
  3. replaceChars(String str, char searchChar, char replaceChar)
  4. replaceChars(String str, String searchChars, String replaceChars)
  5. replaceEach(String text, String[] searchList, String[] replacementList)
  6. replaceEachRepeatedly(String text, String[] searchList, String[] replacementList)
  7. replaceOnce(String text, String searchString, String replacement)
  8. overlay(String str,String overlay,int start,int end)
  • 例子
StringUtils.replace("aba", "a", "")    = "b"
StringUtils.replace("aba", "a", "z") = "zbz" //数字就是替换个数,0代表不替换,1代表从开始数起第一个,-1代表全部替换
StringUtils.replace("abaa", "a", "", -1) = "b"
StringUtils.replace("abaa", "a", "z", 0) = "abaa"
StringUtils.replace("abaa", "a", "z", 1) = "zbaa"
StringUtils.replace("abaa", "a", "z", 2) = "zbza"
StringUtils.replace("abaa", "a", "z", -1) = "zbzz" //replaceEach是replace的增强版,搜索列表和替换长度必须一致,否则报IllegalArgumentException异常
StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte"
StringUtils.replaceEach("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "dcte"
StringUtils.replaceChars("dabcba", "bcd", "yzx") = "xayzya"
StringUtils.replaceChars("abcba", "bc", "y") = "ayya" //replaceOnce只替换一次
StringUtils.replaceOnce("aba", "a", "") = "ba"
StringUtils.replaceOnce("aba", "a", "z") = "zba"
StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"w", "t"}) = "wcte" //这是一个非常奇怪的函数,本来自己料想结果应该是“dcte”的,可是结果居然是tcte,而dcte再替换一次就是tcte了。
StringUtils.replaceEachRepeatedly("abcde", new String[]{"ab", "d"}, new String[]{"d", "t"}) = "tcte" StringUtils.overlay("abcdef", "zzzz", 2, 4) = "abzzzzef"
StringUtils.overlay("abcdef", "zzzz", 4, 2) = "abzzzzef"
StringUtils.overlay("abcdef", "zzzz", -1, 4) = "zzzzef"
StringUtils.overlay("abcdef", "zzzz", 2, 8) = "abzzzz"
StringUtils.overlay("abcdef", "zzzz", -2, -3) = "zzzzabcdef"
StringUtils.overlay("abcdef", "zzzz", 8, 10) = "abcdefzzzz"

分隔合并函数

  1. split(String str)
  2. split(String str, char separatorChar)
  3. split(String str, String separatorChars)
  4. split(String str, String separatorChars, int max)
  5. splitByCharacterType(String str)
  6. splitByCharacterTypeCamelCase(String str)
  7. splitByWholeSeparator(String str, String separator)
  8. splitByWholeSeparator(String str, String separator, int max)
  9. splitByWholeSeparatorPreserveAllTokens(String str, String separator)
  10. splitByWholeSeparatorPreserveAllTokens(String str, String separator, int max)
  11. splitPreserveAllTokens(String str)
  12. splitPreserveAllTokens(String str, char separatorChar)
  13. splitPreserveAllTokens(String str, String separatorChars)
  14. splitPreserveAllTokens(String str, String separatorChars, int max)
//用空白符做空格
StringUtils.split("abc def") = ["abc", "def"]
StringUtils.split("abc def") = ["abc", "def"]
StringUtils.split("a..b.c", '.') = ["a", "b", "c"]
//用字符分割
StringUtils.split("a:b:c", '.') = ["a:b:c"]
//0 或者负数代表没有限制
StringUtils.split("ab:cd:ef", ":", 0) = ["ab", "cd", "ef"]
//分割字符串 ,可以设定得到数组的长度,限定为2
StringUtils.split("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]
//null也可以作为分隔
StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"]
StringUtils.splitByWholeSeparator("ab de fg", null) = ["ab", "de", "fg"]
StringUtils.splitByWholeSeparator("ab:cd:ef", ":") = ["ab", "cd", "ef"]
StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-") = ["ab", "cd", "ef"]
//带有限定长度的分隔
StringUtils.splitByWholeSeparator("ab:cd:ef", ":", 2) = ["ab", "cd:ef"]
  1. join(byte[] array,char separator)
  2. join(Object[] array,char separator)等方法
  3. join(Object[] array,char separator,int startIndex,int endIndex)
//只有一个参数的join,简单合并在一起
StringUtils.join(["a", "b", "c"]) = "abc"
StringUtils.join([null, "", "a"]) = "a"
//null的话,就是把字符合并在一起
StringUtils.join(["a", "b", "c"], null) = "abc"
//从index为0到3合并,注意是排除3的
StringUtils.join([null, "", "a"], ',', 0, 3) = ",,a"
StringUtils.join(["a", "b", "c"], "--", 0, 3) = "a--b--c"
//从index为1到3合并,注意是排除3的
StringUtils.join(["a", "b", "c"], "--", 1, 3) = "b--c"
StringUtils.join(["a", "b", "c"], "--", 2, 3) = "c"

截取函数

  1. substring(String str,int start)
  2. substringAfter(String str,String separator)
  3. substringBeforeLast(String str,String separator)
  4. substringAfterLast(String str,String separator)
  5. substringBetween(String str,String tag)
StringUtils.substring("abcdefg", 0)  = "abcdefg"
StringUtils.substring("abcdefg", 2) = "cdefg"
StringUtils.substring("abcdefg", 4) = "efg"
//start>0表示从左向右, start<0表示从右向左, start=0则从左第一位开始
StringUtils.substring("abcdefg", -2) = "fg"
StringUtils.substring("abcdefg", -4) = "defg" //从第二个参数字符串开始截取,排除第二个字符串
StringUtils.substringAfter("abc", "a") = "bc"
StringUtils.substringAfter("abcba", "b") = "cba"
StringUtils.substringAfter("abc", "c") = "" //从最后一个字母出现开始截取
StringUtils.substringBeforeLast("abcba", "b") = "abc"
StringUtils.substringBeforeLast("abc", "c") = "ab"
StringUtils.substringBeforeLast("a", "a") = ""
StringUtils.substringBeforeLast("a", "z") = "a" StringUtils.substringAfterLast("abc", "a") = "bc"
StringUtils.substringAfterLast("abcba", "b") = "a"
StringUtils.substringAfterLast("abc", "c") = "" StringUtils.substringBetween("tagabctag", null) = null
StringUtils.substringBetween("tagabctag", "") = ""
StringUtils.substringBetween("tagabctag", "tag") = "abc"

差异函数

  1. difference(String str1,String str2)
//在str1中寻找str2中没有的的字符串,并返回
StringUtils.difference("", "abc") = "abc"
StringUtils.difference("abc", "") = ""
StringUtils.difference("abc", "abc") = ""
StringUtils.difference("abc", "ab") = ""
StringUtils.difference("ab", "abxyz") = "xyz"
StringUtils.difference("abcde", "abxyz") = "xyz"
StringUtils.difference("abcde", "xyz") = "xyz"

删除空白函数

  1. trim(String str)
  2. trimToEmpty(String str)
  3. trimToNull(String str)
  4. deleteWhitespace(String str)
 StringUtils.trim(null)          = null
StringUtils.trim("") = ""
StringUtils.trim(" ") = ""
StringUtils.trim("abc") = "abc"
StringUtils.trim(" abc ") = "abc" StringUtils.trimToEmpty(null) = ""
StringUtils.trimToEmpty("") = ""
StringUtils.trimToEmpty(" ") = ""
StringUtils.trimToEmpty("abc") = "abc"
StringUtils.trimToEmpty(" abc ") = "abc" StringUtils.trimToNull(null) = null
StringUtils.trimToNull("") = null
StringUtils.trimToNull(" ") = null
StringUtils.trimToNull("abc") = "abc"
StringUtils.trimToNull(" abc ") = "abc"

判断是否相等函数

  1. equals(CharSequence cs1,CharSequence cs2)
  2. equalsIgnoreCase(CharSequence str1, CharSequence str2)
StringUtils.equals("abc", null)  = false
StringUtils.equals("abc", "abc") = true
StringUtils.equals("abc", "ABC") = false
//忽略大小写
StringUtils.equalsIgnoreCase("abc", null) = false
StringUtils.equalsIgnoreCase("abc", "abc") = true
StringUtils.equalsIgnoreCase("abc", "ABC") = true

是否包含函数

  • 关键字 contains
 StringUtils.contains(null, *)    = false
StringUtils.contains("", *) = false
StringUtils.contains("abc", 'a') = true
StringUtils.contains("abc", 'z') = false StringUtils.contains(null, *) = false
StringUtils.contains(*, null) = false
StringUtils.contains("", "") = true
StringUtils.contains("abc", "") = true
StringUtils.contains("abc", "a") = true
StringUtils.contains("abc", "z") = false
StringUtils.contains("abc", "A") = true
StringUtils.contains("abc", "Z") = false StringUtils.containsNone(null, *) = true
StringUtils.containsNone(*, null) = true
StringUtils.containsNone("", *) = true
StringUtils.containsNone("ab", '') = true
StringUtils.containsNone("abab", 'xyz') = true
StringUtils.containsNone("ab1", 'xyz') = true
StringUtils.containsNone("abz", 'xyz') = false StringUtils.containsAny(null, *) = false
StringUtils.containsAny("", *) = false
StringUtils.containsAny(*, null) = false
StringUtils.containsAny(*, "") = false
StringUtils.containsAny("zzabyycdxx", "za") = true
StringUtils.containsAny("zzabyycdxx", "by") = true
StringUtils.containsAny("aba","z") = false

索引下标函数

  • 关键字 indexOf
//返回第二个参数开始出现的索引值
StringUtils.indexOf("aabaabaa", "a") = 0
StringUtils.indexOf("aabaabaa", "b") = 2
StringUtils.indexOf("aabaabaa", "ab") = 1 //从第三个参数索引开始找起,返回第二个参数开始出现的索引值
StringUtils.indexOf("aabaabaa", "a", 0) = 0
StringUtils.indexOf("aabaabaa", "b", 0) = 2
StringUtils.indexOf("aabaabaa", "ab", 0) = 1
StringUtils.indexOf("aabaabaa", "b", 3) = 5
StringUtils.indexOf("aabaabaa", "b", 9) = -1
//返回第二个参数出现的最后一个索引值
StringUtils.lastIndexOf("aabaabaa", 'a') = 7
StringUtils.lastIndexOf("aabaabaa", 'b') = 5 StringUtils.lastIndexOfIgnoreCase("aabaabaa", "A", 8) = 7
StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 8) = 5
StringUtils.lastIndexOfIgnoreCase("aabaabaa", "AB", 8) = 4
StringUtils.lastIndexOfIgnoreCase("aabaabaa", "B", 9) = 5

StringUtils类方法归纳的更多相关文章

  1. JavaScript学习总结【8】、面向对象编程

    1.什么是面向对象编程 要理解面向对象,得先搞清楚什么是对象,首先需要明确一点这里所说的对象,不是生活中的搞男女朋友对象,面向对象就是面向着对象,换在代码中,就是一段代码相中了另一段代码,自此夜以继日 ...

  2. [b0016] python 归纳 (二)_静态方法和类方法

    # -*- coding: UTF-8 -*- """ 测试 类的静态方法,类方法 @staticmethod @classmethod 总结: 1. self 指向类对 ...

  3. .NET对象判等归纳与总结

    1.引言 最近在看<CLR via C#>看到对象判等的那一节,觉得这也是.NET基础知识中比较重要的部分就写一篇博文来简单的总结归纳一下. 2..NET下的对象判等 在.NET中关于对象 ...

  4. StringUtils一些常用方法

    StringUtils是org.apache.commons.lang jar包里面的类方法,当输入参数String为null则不会抛出NullPointerException,而是做了相应处理,nu ...

  5. Objective-C 2.0 基础要点归纳

    本文的阅读基本条件: 具备C/C++基础知识,了解面向对象特征 阅读过<Objective-C 2.0 程序设计(第二版)>.<Objective-C 程序设计 第6版>或相关 ...

  6. StringUtils的isBlank与isEmply

    1.public static boolean isEmpty(String str) 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 StringUtil ...

  7. python类的实例方法\静态方法\类方法区别解析(附代码)

    前言 搞了好久python,一直搞得不太清楚这几种类的方法,今天花时间好好测试一下,算是弄懂点皮毛吧. 三种方法的不同 先剽窃个图看一下 可以看到,实例是三种方法都可以调用的,而类只可以调用两种.所以 ...

  8. AndroidProjects个人项目归纳

    AndroidProjects 个人总结归纳-目录大纲 Data Binding框架MVVM BaseView CollapseView 更新中... 项目地址:https://github.com/ ...

  9. python 静态方法、类方法(二)

    <Python静态方法.类方法>一文中曾用在类之外生成函数的方式,来计算类的实例的个数.本文将探讨用静态方法和类方法来实现此功能. 一使用静态方法统计实例 例1.static.py # - ...

随机推荐

  1. 风险指针(Hazard Pointer) 内存空间共享模型

    WiredTiger是一种高性能的开源存储引擎,现已在MongoDB中作为内模式应用.WiredTiger支持行存储.列存储两种存储模式,采用LSM Tree方式进行索引记录 WiredTiger支持 ...

  2. jQuery的介绍和选择器详解

    本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. jQuery 的介绍 引入 jQuery 的原因 在用 js 写代码时, ...

  3. Spark随机森林实战

    package big.data.analyse.ml.randomforest import org.apache.spark.ml.Pipeline import org.apache.spark ...

  4. java io详解(1)

    一.java io结构图 二.java io的开始:文件 三.字节流: 一.java io结构图 流分类: 1.Java的字节流    InputStream是所有字节输入流的祖先,而OutputSt ...

  5. Inception开源公告

    关于Inception MySQL语句的审核,在业界都已经基本被认同了,实际上也是对MySQL语句写法的统一化,标准化,而之前的人工审核,针对标准这个问题其实是很吃力的,标准越多,DBA越累,开发也越 ...

  6. mysql主从不同步问题 Error_code: 1236

    第一种情况,开启GTID,从库与主库不同步. 1.在从库上查看从的状态   mysql> show slave status \G *************************** 1. ...

  7. NGUI和UGUI图片字 艺术字(Bitmap图片转文字)制作方法

    用图片字而不是图片 美术和程序的配合,需要程序能够很快抓住问题重点并提出解决方案.美术出的图片字比我们使用的字体更好好看,那么是否要一个个图片去拼成数字呢? NGUI创建图片字 准备材料 美术提供的数 ...

  8. selenium - pycharm三种案例运行模式

    1.unittest 运行单个用例 (1)将鼠标放到对应的用例,右键运行即可 2.unittest运行整个脚本案例 将鼠标放到if __name__ == "__main__": ...

  9. Tidb进行缩减扩容tikv节点

    这两天接到任务说是要进行测试缩减机器给集群带来的负面效果有哪些. 然后我就按照官方的教程将机器进行了缩减,主要是缩减tikv节点 我们先来看看官方的文章是怎么写的: 步骤都没有什么问题,就是进行到第二 ...

  10. 一个U盘黑掉你:TEENSY实战(test)

    挖掘过程一: 自从上一次投稿,已经好久好久没写文章了.今天就着吃饭的时间,写篇文章,记录下自己学习xss这么久的心得.在我看来.Xss就是javascript注入,你可以在js语法规定的范畴内做任何事 ...