StringUtil方法全集

org.apache.commons.lang.StringUtils中方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充。



import org.apache.commons.lang.StringUtils;

<dependency>

<groupId>commons-lang</groupId>

<artifactId>commons-lang</artifactId>

<version>2.6</version>

</dependency>


 public static boolean isEmpty(String str)

判断某字符串是否为空,为空的标准是str == null 或 str.length() == 0

下面是示例:

StringUtils.isEmpty(null)= true

StringUtils.isEmpty("")= true

StringUtils.isEmpty(" ")= false

StringUtils.isEmpty("        ")     = false

StringUtils.isEmpty("bob")       = false

public static String trim(String str)

去掉字符串两端的控制符(control characters, char <= 32)

如果输入为null则返回null

public static String strip(String str)

去掉字符串两端的空白符(whitespace),

如果输入为null则返回null

public static String strip(String str, String stripChars)

去掉str两端的在stripChars中的字符。

如果str为null或等于"",则返回它本身;

如果stripChars为null或"",则返回strip(String str)。


public static boolean equals(String str1, String str2)

比较两个字符串是否相等,如果两个均为空则也认为相等。

public static int indexOf(String str, char searchChar)

返回字符searchChar在字符串str中第一次出现的位置。

如果searchChar没有在str中出现则返回-1,

如果str为null或"",则也返回-1

public static int indexOf(String str, String searchStr, int startPos)

返回字符串searchStr从startPos开始在字符串str中第一次出现的位置。

举例(*代表任意字符串):

StringUtils.indexOf(null, *, *)= -1

StringUtils.indexOf(*, null, *)= -1

StringUtils.indexOf("", "", 0)= 0

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.indexOf("aabaabaa", "b", -1) = 2

StringUtils.indexOf("aabaabaa", "", 2)= 2

StringUtils.indexOf("abc", "", 9)= 3

public static boolean contains(String str, String searchStr)

判断字符串str是否包含字符串searchStr。

如果str为null或searchStr为null,返回false;

如果str为"",并且searchStr为"",返回true

举例:

StringUtils.contains("", "")= true

StringUtils.contains("dfg", "")= true

StringUtils.contains("dfg", "d")= true

StringUtils.contains("dfg", "gz") = false


public static String substring(String str, int start)

得到字符串str的子串。

如果start小于0,位置是从后往前数的第|start|个

如果str为null或"",则返回它本身

举例(*表示任意):

StringUtils.substring(null, *)= null

StringUtils.substring("", *)= ""

StringUtils.substring("asdf", 0)) = "asdf"

StringUtils.substring("asdf", 1)) = "sdf"

StringUtils.substring("asdf", 3)) = "f"

StringUtils.substring("asdf",) = ""

StringUtils.substring("asdf", -1)) = "f"

StringUtils.substring("asdf", -3)) = "sdf"

StringUtils.substring("asdf", -8)) = "asdf"

public static String substring(String str, int start, int end)

得到字符串str的子串。

如果start小于0,位置是从后往前数的第|start|个,

如果end小于0,位置是从后往前数的第|end|个,

如果str为null或"",则返回它本身

public static String[] split(String str)

把字符串拆分成一个字符串数组,用空白符(whitespace)作为分隔符。

Whitespace是这样定义的{@linkCharacter#isWhitespace(char)}

如果字符串为null,返回null

如果字符串为"",返回空数组{}

举例(*表示任意):

StringUtils.split(null)= null

StringUtils.split("")= {}

StringUtils.split("as dfyy"))= {"as","df","yy"}

StringUtils.split(" as dfyy "))= {"as","df","yy"}

StringUtils.split("as\ndf\ryy"))= {"as","df","yy"}

StringUtils.split("as\tdf\fyy"))= {"as","df","yy"}

StringUtils.split("asdf \fyy"))= {"as","df","yy"}

StringUtils.split("as\t \r df \f \n yy")) = {"as","df","yy"}

StringUtils.split("as"))= {"as"}

StringUtils.split(" as "))= {"as"}


public static String[] split(String str, char separatorChar)

把字符串拆分成一个字符串数组,用指定的字符separatorChar作为分隔符。

如果字符串为null,返回null

如果字符串为"",返回空数组{}

举例(*表示任意):

StringUtils.split(null, *)= null

StringUtils.split("", *)= {}

StringUtils.split("as df yy",' '))= {"as","df","yy"}

StringUtils.split(" as df yy ",' ')) = {"as","df","yy"}

StringUtils.split("asodfoyy",'o'))= {"as","df","yy"}

StringUtils.split("as.df.yy",'.'))= {"as","df","yy"}

StringUtils.split("as\ndf\nyy",'\n'))= {"as","df","yy"}

StringUtils.split("as",' '))= {"as"}

StringUtils.split(" as ",' '))= {"as"}


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

把数组中的元素连接成一个字符串返回,把分隔符separator也加上。

举例(*表示任意):

StringUtils.join(null, *)= null

StringUtils.join({}, *)= ""

StringUtils.join({null}, *)= ""

StringUtils.join({"as","df","gh","jk"},' '))= "as df gh jk"

StringUtils.join({"as","df","gh","jk"},'.'))= "as.df.gh.jk"

StringUtils.join({"as","","df","gh"},'.'))= "as..df.gh"

StringUtils.join({"","as","","","df","",""},','))= ",as,,,df,,"

StringUtils.join({"","as","","","df","",""},' '))= " asdf "

StringUtils.join({"as.df.gh"},'.'))= "as.df.gh"

StringUtils.join({"as.df.gh"},' '))= "as.df.gh"


public static String replaceChars(String str, String searchChars, String replaceChars)

用replaceChars代替str中的searchChars。

replaceChars的长度应该和searchChars的长度相等,

如果replaceChars的长度大于searchChars的长度,超过长度的字符将被忽略,

如果replaceChars的长度小于searchChars的长度,超过长度的字符将被删除。

举例(*表示任意):

StringUtils.replaceChars(null, *, *)= null

StringUtils.replaceChars("", *, *)= ""

StringUtils.replaceChars("asdf", null, *)= "asdf"

StringUtils.replaceChars("asdf", "", *)= "asdf"

StringUtils.replaceChars("asdf","s",null))= "adf"

StringUtils.replaceChars("asdf","s",""))= "adf"

StringUtils.replaceChars("asdsfsg","s","y"))= "aydyfyg"

StringUtils.replaceChars("asdf","sd","yy"))="ayyf"

StringUtils.replaceChars("asdf","sd","yyy"))="ayyf"

StringUtils.replaceChars("asssdf","s","yyy"))="ayyydf"

StringUtils.replaceChars("asdf","sd","y"))= "ayf"

StringUtils.replaceChars("assssddddf","sd","y"))= "ayyyyf"

public static String repeat(String str, int repeat)

重复字符串repeat次,组合成一个新串返回。

如果字符串str为null或"",则返回它本身

如果repeat小于0,则返回""

举例(*表示任意):

StringUtils.repeat(null, *) = null

StringUtils.repeat("", *)= ""

StringUtils.repeat("a", 3) = "aaa"

StringUtils.repeat("ab", 2) = "abab"

StringUtils.repeat("a", -2) = ""


public static String swapCase(String str)

把字符串中的字符大写转换为小写,小写转换为大写。

举例:

StringUtils.swapCase(null)= null

StringUtils.swapCase("")= ""

StringUtils.swapCase("Hello Boys")) = "hELLO bOYS"

StringUtils.swapCase("I am 11"))="i AM 11"

.public static int countMatches(String str, String sub)

计算字符串sub在字符串str中出现的次数。

如果str为null或"",则返回0

举例(*表示任意):

StringUtils.countMatches(null, *)= 0

StringUtils.countMatches("", *)= 0

StringUtils.countMatches("asdf","as"))= 1

StringUtils.countMatches("asdfas","as")) = 2

StringUtils.countMatches("dfgh","as"))= 0

StringUtils.countMatches("as",""))= 0

StringUtils.countMatches("as",null))= 0

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,884评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,755评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,369评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,799评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,910评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,096评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,159评论 3 411
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,917评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,360评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,673评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,814评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,509评论 4 334
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,156评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,882评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,123评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,641评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,728评论 2 351

推荐阅读更多精彩内容