Spring中Utils的使用系列(一):StringUtils
在Spring中,有非常多Utils工具類,這些工具類有的是為了開發者使用的,有的只是提供給Spring框架使用的。瞭解這些工具類,在適當的時候使用這些工具類,對我們平時的開發還是很有幫助的,能極大方便我們的開發。
Spring的工具類都是以Utils結尾,所以要檢視這些工具類,只需要在API文件中查詢所有*Utils即可,可以看到有多達幾十個。在後面的幾篇文章中我會選擇幾個常用的Utils,給大家展示一下Spring中的工具類的有用和常用方法。
原文地址
更多詳細內容請閱讀原文!
Boolean
屬於該組的方法都是在對字串進行一些判定操作:
1 |
// boolean isEmpty(Object str):字串是否為空或者空字串:"" |
字串頭尾操作
屬於該類別的方法,都是對字串前,或者字串後的內容進行判定或者操作;
1 |
//字串頭尾操作 |
檔案路徑名稱相關操作
檔案路徑名稱相關操作,是針對檔名,檔案路徑,檔案字尾等常見檔案操作中需要用到的方法進行封裝;
1 |
// String unqualify(String qualifiedName): |
字串和子串的操作
該組方法中主要是提供了字串和字串子串的操作,比如子串的匹配,子串的替換;子串的刪除等等操作;
1 |
// boolean substringMatch(CharSequence str, int index, CharSequence |
本地化相關
和Locale相關的一些字串操作;
1 |
// Locale parseLocaleString(String localeString): |
字串和Properties
把字串和Properties物件之間的相互轉化抽取出的一些常用方法;
1 |
//Properties splitArrayElementsIntoProperties(String[] array, String delimiter): |
字串和陣列之間的基本操作
該組方法主要是完成字串和字串陣列之間的基本操作,比如追加,刪除,排序等;
1 |
// String[] addStringToArray(String[] array, String str):把一個字串新增到一個字串陣列中 |
字串和陣列的更多方法
在該組方法中,提供了更多字串和陣列的方法,主要涉及到字串陣列的合併,字串的按規則拆分,字串和集合之間的相互轉化等操作;
1 |
//String[] split(String toSplit, String delimiter):按照指定字串分割字串; |
在Spring中,有非常多Utils工具類,這些工具類有的是為了開發者使用的,有的只是提供給Spring框架使用的。瞭解這些工具類,在適當的時候使用這些工具類,對我們平時的開發還是很有幫助的,能極大方便我們的開發。
Spring的工具類都是以Utils結尾,所以要檢視這些工具類,只需要在API文件中查詢所有*Utils即可,可以看到有多達幾十個。在後面的幾篇文章中我會選擇幾個常用的Utils,給大家展示一下Spring中的工具類的有用和常用方法。
原文地址
更多詳細內容請閱讀原文!
首先,這個工具類裡面的所有方法,都是針對字串常見操作,其次,裡面有不少方法,即可以針對String,也可以使用CharSequence;
判斷類
屬於該類別的方法都是在對字串進行一些判定操作:
//判斷類:
// boolean isEmpty(Object str):字串是否為空或者空字串:""
// boolean hasLength(CharSequence str):字串是否為空,或者長度為0
// boolean hasText(String str):字串是否有內容(不為空,且不全為空格)
assertFalse(StringUtils.hasText(" "));
// boolean containsWhitespace(String str):字串是否包含空格
assertTrue(StringUtils.containsWhitespace("a b"));
字串頭尾操作
屬於該類別的方法,都是對字串前,或者字串後的內容進行判定或者操作;
//字串頭尾操作
// String trimWhitespace(String str):去掉字串前後的空格
assertEquals("abc", StringUtils.trimWhitespace(" abc "));
// String trimAllWhitespace(String str):去掉字串中所有的空格
assertEquals("abc", StringUtils.trimAllWhitespace(" a b c "));
// String trimLeadingWhitespace(String str):去掉字串開頭的空格
// String trimTrailingWhitespace(String str):去掉字串結束的空格
// String trimLeadingCharacter(String str, char leadingCharacter):去掉字串開頭的指定字元;
// String trimTrailingCharacter(String str, char trailingCharacter):去掉字串結尾的指定字元;
// boolean startsWithIgnoreCase(String str, String prefix):
// 判斷字串是否以指定字串開頭,忽略大小寫
assertTrue(StringUtils.startsWithIgnoreCase("abcd", "AB"));
// boolean endsWithIgnoreCase(String str, String suffix):
// 判斷字串是否以指定字串結尾,忽略大小寫
檔案路徑名稱相關操作
檔案路徑名稱相關操作,是針對檔名,檔案路徑,檔案字尾等常見檔案操作中需要用到的方法進行封裝;
// String unqualify(String qualifiedName):
// 得到以.分割的最後一個值,可以非常方便的獲取類似類名或者檔案字尾
assertEquals("java", StringUtils.unqualify("cn.wolfcode.java"));
assertEquals("java", StringUtils.unqualify("cn/wolfcode/Hello.java"));
// String unqualify(String qualifiedName, char separator):
// 得到以給定字元分割的最後一個值,可以非常方便的獲取類似檔名
assertEquals("Hello.java", StringUtils
.unqualify("cn/wolfcode/Hello.java", File.separatorChar));
// String capitalize(String str):首字母大寫
assertEquals("Wolfcode", StringUtils.capitalize("wolfcode"));
// String uncapitalize(String str):取消首字母大寫
assertEquals("java", StringUtils.uncapitalize("Java"));
// String getFilename(String path):獲取檔名,就不需要再使用FilenameUtils
assertEquals("myfile.txt",
StringUtils.getFilename("mypath/myfile.txt"));
// String getFilenameExtension(String path):獲取檔案字尾名
assertEquals("txt",
StringUtils.getFilenameExtension("mypath/myfile.txt"));
// String stripFilenameExtension(String path):擷取掉檔案路徑字尾
assertEquals("mypath/myfile",
StringUtils.stripFilenameExtension("mypath/myfile.txt"));
// String applyRelativePath(String path, String relativePath):
// 找到給定的檔案,和另一個相對路徑的檔案,返回第二個檔案的全路徑
// 列印:d:/java/wolfcode/other/Some.java
System.out.println(StringUtils.applyRelativePath(
"d:/java/wolfcode/Test.java", "other/Some.java"));
// 但是不支援重新定位絕對路徑和上級目錄等複雜一些的相對路徑寫法:
// 仍然列印:d:/java/wolfcode/../other/Some.java
System.out.println(StringUtils.applyRelativePath(
"d:/java/wolfcode/Test.java", "../other/Some.java"));
// String cleanPath(String path):
// 清理檔案路徑,這個方法配合applyRelativePath就可以計算一些簡單的相對路徑了
// 列印:d:/java/other/Some.java
System.out.println(
StringUtils.cleanPath("d:/java/wolfcode/../other/Some.java"));
// 需求:獲取d:/java/wolfcode/Test.java相對路徑為../../other/Some.java的檔案全路徑:
// 列印:d:/other/Some.java
System.out.println(StringUtils.cleanPath(StringUtils.applyRelativePath(
"d:/java/wolfcode/Test.java", "../../other/Some.java")));
// boolean pathEquals(String path1, String path2):
// 判斷兩個檔案路徑是否相同,會先執行cleanPath之後再比較
assertTrue(StringUtils.pathEquals("d:/wolfcode.txt",
"d:/somefile/../wolfcode.txt"));
字串和子串的操作
該組方法中主要是提供了字串和字串子串的操作,比如子串的匹配,子串的替換;子串的刪除等等操作;
// boolean substringMatch(CharSequence str, int index, CharSequence
// substring):判斷從指定索引開始,是否匹配子字串
assertTrue(StringUtils.substringMatch("aabbccdd",