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. http请求工具-OkHttp用法

    OKHttp介绍 okhttp是一个第三方类库,用于android中请求网络.这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCan ...

  2. Microsoft SQL 关系数据库的使用指南

    Microsoft SQL 关系数据库的使用指南 https://docs.microsoft.com/zh-cn/sql/relational-databases/database-features

  3. .net 操作MongoDB 基础

    1. 下载驱动,最好使用 NuGet 下载,直接搜索MongoDB: 2. 引用相关驱动 3. 部分测试代码,主要是针对MongoDB的GridFS 文件存储来用 using Mongo.Model; ...

  4. Python邮件发送源码

    -- coding:utf-8 -- i = 0 while i < 10: #发送十次 import smtplib from email.mime.text import MIMEText ...

  5. mySQL 约束 (Constraints)

    约束用于限制加入表的数据的类型: 1.创建表时规定约束(通过 CREATE TABLE 语句) 2.表创建之后也可以(通过 ALTER TABLE 语句). 约束类型: NOT NULL(非空) UN ...

  6. python3.6和pip3安装

    CenOS7 安装依赖环境 yum -y install openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc 编译 ...

  7. Git如何永久删除文件(包括历史记录)

    有些时候不小心上传了一些敏感文件(例如密码), 或者不想上传的文件(没及时或忘了加到.gitignore里的), 而且上传的文件又特别大的时候, 这将导致别人clone你的代码或下载zip包的时候也必 ...

  8. OpenGL_Qt学习笔记之_03(平面图形的着色和旋转)(转)

    http://www.cnblogs.com/tornadomeet/archive/2012/08/23/2653305.html 在这一节中主要简单介绍下怎样给平面几何着色,以及怎样让绘制出来的几 ...

  9. MySQL基础之 AND和OR运算符

    AND和OR运算符 作用:用于基于一个以上的条件对记录进行过滤 用法:可在WHERE子句中把两个或多个条件结合在一起. AND:如果第一个条件和第二个条件都成立,才会显示一条记录 OR:如果第一个条件 ...

  10. linux 文本操作

    sed -i 直接修改 sed 是负责插入替换删除字符串操作. sed -n '/11/p' 11.txt |sed  's/11/33333/g'  查找11并替换11位3333 sed  's/1 ...