<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
在實際的業務開發中,除了經常有針對物件的判斷或操作以外,經常也會遇到的就是字串的判斷和操作。比如判斷字串是否為空、是否以某個字元結尾、去除頭部和尾部的空白字元、字元的查詢和替換。在Spring的核心包中存在這樣一個類org.springframework.util.StringUtils,它提供了常見的關於字串的判斷和操作的靜態方法。下面咱們針對一些常見的一塊學習一下,順便再把前面說的斷言給複習一下:
字串判斷
判斷字串是否為 null,或 ""。注意,包含空白符的字串為非空。
booleanisEmpty(Objectstr)
@Test public void test() { String name = ""; boolean empty = StringUtils.isEmpty(name); Assert.isTrue(empty, "變數name是有值的"); System.out.println("給name賦值為zhangsan"); name = "zhangsan"; boolean empty1 = StringUtils.isEmpty(name); Assert.isTrue(empty1, "變更name是有值的"); }
判斷字串是否是以指定內容結束。忽略大小寫。
booleanendsWithIgnoreCase(Stringstr,Stringsuffix)
@Test public void test2() { String name = "zhangsanAK"; boolean ak = StringUtils.endsWithIgnoreCase(name, "ak"); Assert.isTrue(ak, "變數name不是以ak結尾的"); boolean akb = StringUtils.endsWithIgnoreCase(name, "akb"); Assert.isTrue(akb, "變數name不是以akb結尾的"); }
判斷字串是否已指定內容開頭。忽略大小寫。
booleanstartsWithIgnoreCase(Stringstr,Stringprefix)
@Test public void test3() { String name = "OKzhangsan"; boolean ok = StringUtils.startsWithIgnoreCase(name, "ok"); Assert.isTrue(ok, "變數name不是以ak結尾的"); boolean abc = StringUtils.startsWithIgnoreCase(name, "abc"); Assert.isTrue(abc, "變數name不是以abc開始的"); }
是否包含空白符。
booleancontainsWhitespace(Stringstr)
@Test public void test4() { String name = "OK zhangsan"; boolean spaceFlag = StringUtils.containsWhitespace(name); Assert.isTrue(spaceFlag, "變數name沒有包含空格"); System.out.println("給name賦值為zhangsan"); name = "zhangsan"; boolean spaceFlag2 = StringUtils.containsWhitespace(name); Assert.isTrue(spaceFlag2, "變數name沒有包含空格"); }
判斷字串非空且長度不為 0,即,Not Empty。
booleanhasLength(CharSequence str)
@Test public void test5() { String name = "zhangsan"; boolean lengthFlag = StringUtils.hasLength(name); Assert.isTrue(lengthFlag, "變數name非空,但是長度為0"); System.out.println("給name賦值為一個空字串"); name = " "; boolean lengthFlag2 = StringUtils.hasLength(name); Assert.isTrue(lengthFlag2, "變數name非空,但是長度為0"); System.out.println("給name賦值為一個空字串,但長度為0"); name = ""; boolean lengthFlag3 = StringUtils.hasLength(name); Assert.isTrue(lengthFlag3, "變數name非空,但是長度為0"); }
判斷字串是否包含實際內容,即非僅包含空白符,也就是 Not Blank。這裡要特別注意一下,通常empty是指null、“”,“ ”,多個空字元就不會認為是Empty了,而是Blank;
booleanhasText(CharSequence str)
@Test public void test6() { String name = "zhangsan"; boolean lengthFlag = StringUtils.hasText(name); Assert.isTrue(lengthFlag, "變數name非空,但是長度為0"); System.out.println("給name賦值為一個空字串"); name = " "; boolean lengthFlag2 = StringUtils.hasText(name); Assert.isTrue(lengthFlag2, "變數是一個空字元"); }
判斷字串指定索引處是否包含一個子串。
booleansubstringMatch(CharSequence str, int index, CharSequence substring)
@Test public void test7() { String msg = "I am zhangsan"; boolean lengthFlag = StringUtils.substringMatch(msg, 5, "zhangsan"); Assert.isTrue(lengthFlag, "變數msg的索引位置為5的地方,是zhangsan"); msg = "I am not zhangsan"; boolean lengthFlag2 = StringUtils.substringMatch(msg, 5, "zhangsan"); Assert.isTrue(lengthFlag2, "變數msg的索引位置為5的地方,是zhangsan"); }
計算一個字串中指定子串的出現次數。
int countOccurrencesOf(Stringstr,Stringsub)
@Test public void test8() { String msg = "aaa"; int count = StringUtils.countOccurrencesOf(msg, "a"); Assert.isTrue(count == 3, "變數msg中沒有包含3個a"); msg = "bbb"; int count2 = StringUtils.countOccurrencesOf(msg, "b"); Assert.isTrue(count2==4, "變數msg中沒有包含4個b"); }
查詢並替換指定子串。
String replace(String inString, String oldPattern, String newPattern)
@Test public void test10() { String name = "aba"; String name2 = StringUtils.replace(name, "b", "a"); Assert.isTrue(name2.equals("aaa"), "變數name替換b後結果不是aaa"); }
去除尾部的特定字元。
String trimTrailingCharacter(String str, char trailingCharacter)
@Test public void test11() { String name = "aba"; String a = StringUtils.trimTrailingCharacter(name, 'a'); Assert.isTrue(a.equals("ab"), "去除尾部的a後不是ab"); }
去除頭部的特定字元。
String trimLeadingCharacter(String str, char leadingCharacter)
@Test public void test12() { String name = "aba"; String a = StringUtils.trimLeadingCharacter(name, 'a'); Assert.isTrue(a.equals("ba"), "去除開頭的a後不是ba"); }
去除頭部的空白符。
String trimLeadingWhitespace(String str)
@Test public void test13() { String name = "aba "; String a = StringUtils.trimTrailingWhitespace(name); Assert.isTrue(a.equals("aba"), "去除尾部的空格失敗了"); }
去除頭部的空白符。
String trimTrailingWhitespace(String str)
@Test public void test14() { String name = " aba"; String a = StringUtils.trimLeadingWhitespace(name); Assert.isTrue(a.equals("aba"), "去除開頭的空格失敗了"); }
去除頭部和尾部的空白符。
String trimWhitespace(String str)
@Test public void test15() { String name = " aba "; String a = StringUtils.trimWhitespace(name); Assert.isTrue(a.equals("aba"), "去除開頭和尾部的空格失敗了"); }
刪除開頭、結尾和中間的空白符。
String trimAllWhitespace(String str)
@Test public void test16() { String name = " a b a "; String a = StringUtils.trimAllWhitespace(name); Assert.isTrue(a.equals("aba"), "去除開頭、中間、尾部的空格失敗了"); }
刪除指定子串。
String delete(String inString, String pattern)
@Test public void test17() { String name = "abcabc"; String a = StringUtils.delete(name,"bc"); Assert.isTrue(a.equals("aa"), "刪除變更name裡的字元b失敗了"); }
對陣列的每一項執行 trim() 方法。
String[] trimArrayElements(String[] array)
@Test public void test18() { String[] names = {" zhangsan " ," li si "}; String[] arr = StringUtils.trimArrayElements(names); for (String s : arr) { Assert.isTrue(s.equals("zhangsan")||s.equals("lisi"), "字元"+s+"中沒有包含zhangsan或lisi"); } }
將 URL 字串進行解碼。
String uriDecode(String source, Charset charset)
@Test public void test19() { String result="http://localhost:8080/abc?name=zhangsan"; String url="http%3A%2F%2Flocalhost%3A8080%2Fabc%3Fname%3Dzhangsan"; String tmp = StringUtils.uriDecode(url, Charset.forName("utf-8")); Assert.isTrue(result.equals(tmp), "解碼失敗"); }
到此這篇關於Springboot工具類StringUtils使用教學的文章就介紹到這了,更多相關Springboot StringUtils內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45