2020-10-29 org.apache.commons.lang3.StringUtils

激流勇進_38193118發表於2020-10-29

	public static void TestStr(){
		//null 和 ""操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//判斷是否Null 或者 ""
		System.out.println(StringUtils.isEmpty(null));
		System.out.println(StringUtils.isNotEmpty(null));

		//判斷是否null 或者 "" 去空格~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		System.out.println(StringUtils.isBlank(" "));
		System.out.println(StringUtils.isNotBlank(null));

		//去空格.Null返回null~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		System.out.println(StringUtils.trim(null));
		//去空格,將Null和"" 轉換為Null
		System.out.println(StringUtils.trimToNull(""));
		//去空格,將NULL 和 "" 轉換為""
		System.out.println(StringUtils.trimToEmpty(null));
		//可能是對特殊空格符號去除??
		System.out.println(StringUtils.strip("大家好 啊 \t"));
		//同上,將""和null轉換為Null
		System.out.println(StringUtils.stripToNull(" \t"));
		//同上,將""和null轉換為""
		System.out.println(StringUtils.stripToEmpty(null));
		//將""或者Null 轉換為 ""
		System.out.println(StringUtils.defaultString(null));
		//僅當字串為Null時 轉換為指定的字串(二引數)
		System.out.println(StringUtils.defaultString("", "df"));
		//當字串為null或者""時,轉換為指定的字串(二引數)
		System.out.println(StringUtils.defaultIfEmpty(null, "sos"));

		//去空格.去字元~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//如果第二個引數為null去空格(否則去掉字串2邊一樣的字元,到不一樣為止)
		System.out.println(StringUtils.strip("fsfsdf", "f"));
		//如果第二個引數為null只去前面空格(否則去掉字串前面一樣的字元,到不一樣為止)
		System.out.println(StringUtils.stripStart("ddsuuu ", "d"));
		//如果第二個引數為null只去後面空格,(否則去掉字串後面一樣的字元,到不一樣為止)
		System.out.println(StringUtils.stripEnd("dabads", "das"));
		//對陣列沒個字串進行去空格。
		//ArrayToList(StringUtils.stripAll(new String[]{" 中華 ", "民 國 ", "共和 "}));
		//如果第二個引數為null.對陣列每個字串進行去空格。(否則去掉陣列每個元素開始和結尾一樣的字元)
		//ArrayToList(StringUtils.stripAll(new String[]{" 中華 ", "民 國", "國共和國"}, "國"));

		//查詢,判斷~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//判斷2個字串是否相等相等,Null也相等
		System.out.println(StringUtils.equals(null, null));
		//不區分大小寫比較
		System.out.println(StringUtils.equalsIgnoreCase("abc", "ABc"));

		//查詢,不知道怎麼弄這麼多查詢,很多不知道區別在哪?費勁~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//普通查詢字元,如果一引數為null或者""返回-1
		System.out.println(StringUtils.indexOf(null, "a"));
		//從指定位置(三引數)開始查詢,本例從第2個字元開始查詢k字元
		System.out.println(StringUtils.indexOf("akfekcd中華", "k", 2));
		//未發現不同之處
		System.out.println(StringUtils.ordinalIndexOf("akfekcd中華", "k", 2));
		//查詢,不區分大小寫
		System.out.println(StringUtils.indexOfIgnoreCase("adfs", "D"));
		//從指定位置(三引數)開始查詢,不區分大小寫
		System.out.println(StringUtils.indexOfIgnoreCase("adfs", "a", 3));
		//從後往前查詢
		System.out.println(StringUtils.lastIndexOf("adfas", "a"));
		//未理解,此結果為2
		System.out.println(StringUtils.lastIndexOf("d餓abasdafs我", "a", 3));
		//未解,此結果為-1
		System.out.println(StringUtils.lastOrdinalIndexOf("yksdfdht", "f", 2));
		//從後往前查,不區分大小寫
		System.out.println(StringUtils.lastIndexOfIgnoreCase("sdffet", "E"));
		//未解,此結果為1
		System.out.println(StringUtils.lastIndexOfIgnoreCase("efefrfs看", "F" , 2));
		//檢查是否查到,返回boolean,null返回假
		System.out.println(StringUtils.contains("sdf", "dg"));
		//檢查是否查到,返回boolean,null返回假,不區分大小寫
		System.out.println(StringUtils.containsIgnoreCase("sdf", "D"));
		//檢查是否有含有空格,返回boolean
		System.out.println(StringUtils.containsWhitespace(" d"));
		//查詢字串跟陣列任一元素相同的第一次相同的位置
		System.out.println(StringUtils.indexOfAny("absfekf", new String[]{"f", "b"}));
		//查詢字串中指定字串(引數二)出現的次數
		System.out.println(StringUtils.indexOfAny("afefes", "e"));
		//查詢字串中是否有字元陣列中相同的字元,返回boolean
		System.out.println(StringUtils.containsAny("asfsd", new char[]{'k', 'e', 's'}));
		//未理解與lastIndexOf不同之處。是否查到,返回boolean
		System.out.println(StringUtils.containsAny("啡f咖啡", "咖"));
		//未解
		System.out.println(StringUtils.indexOfAnyBut("seefaff", "af"));
		//判斷字串中所有字元,都是出自引數二中。
		System.out.println(StringUtils.containsOnly("中華華", "華"));
		//判斷字串中所有字元,都是出自引數二的陣列中。
		System.out.println(StringUtils.containsOnly("中華中", new char[]{'中', '華'}));
		//判斷字串中所有字元,都不在引數二中。
		System.out.println(StringUtils.containsNone("中華華", "國"));
		//判斷字串中所有字元,都不在引數二的陣列中。
		System.out.println(StringUtils.containsNone("中華中", new char[]{'中', '華'}));
		//從後往前查詢字串中與字元陣列中相同的元素第一次出現的位置。本例為4
		System.out.println(StringUtils.lastIndexOfAny("中國人民共和國", new String[]{"國人", "共和"}));
		//未發現與indexOfAny不同之處 查詢字串中指定字串(引數二)出現的次數
		System.out.println(StringUtils.countMatches("中國人民共和中國", "中國"));
		//檢查是否CharSequence的只包含Unicode的字母。空將返回false。一個空的CharSequence(長()= 0)將返回true
		System.out.println(StringUtils.isAlpha("這是幹什麼的2"));
		//檢查是否只包含Unicode的CharSequence的字母和空格('')。空將返回一個空的CharSequence假(長()= 0)將返回true。
		System.out.println(StringUtils.isAlphaSpace("NBA直播 "));
		//檢查是否只包含Unicode的CharSequence的字母或數字。空將返回false。一個空的CharSequence(長()= 0)將返回true。
		System.out.println(StringUtils.isAlphanumeric("NBA直播"));
		//如果檢查的Unicode CharSequence的只包含字母,數字或空格('')。空將返回false。一個空的CharSequence(長()= 0)將返回true。
		System.out.println(StringUtils.isAlphanumericSpace("NBA直播"));
		//檢查是否只包含ASCII可CharSequence的字元。空將返回false。一個空的CharSequence(長()= 0)將返回true。
		System.out.println(StringUtils.isAsciiPrintable("NBA直播"));
		//檢查是否只包含數值。
		System.out.println(StringUtils.isNumeric("NBA直播"));
		//檢查是否只包含數值或者空格
		System.out.println(StringUtils.isNumericSpace("33 545"));
		//檢查是否只是空格或""。
		System.out.println(StringUtils.isWhitespace(" "));
		//檢查是否全是英文小寫。
		System.out.println(StringUtils.isAllLowerCase("kjk33"));
		//檢查是否全是英文大寫。
		System.out.println(StringUtils.isAllUpperCase("KJKJ"));
		//交集操作~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//去掉引數2字串中在引數一中開頭部分共有的部分,結果為:人民共和加油
		System.out.println(StringUtils.difference("中國加油", "中國人民共和加油"));
		//統計2個字串開始部分共有的字元個數
		System.out.println(StringUtils.indexOfDifference("ww.taobao", "www.taobao.com"));
		//統計陣列中各個元素的字串開始都一樣的字元個數
		System.out.println(StringUtils.indexOfDifference(new String[] {"中國加油", "中國共和", "中國人民"}));
		//取陣列每個元素共同的部分字串
		System.out.println(StringUtils.getCommonPrefix(new String[] {"中國加油", "中國共和", "中國人民"}));
		//統計引數一中每個字元與引數二中每個字元不同部分的字元個數
		System.out.println(StringUtils.getLevenshteinDistance("中國共和發國人民", "共和國"));
		//判斷開始部分是否與二引數相同
		System.out.println(StringUtils.startsWith("中國共和國人民", "中國"));
		//判斷開始部分是否與二引數相同。不區分大小寫
		System.out.println(StringUtils.startsWithIgnoreCase("中國共和國人民", "中國"));
		//判斷字串開始部分是否與陣列中的某一元素相同
		System.out.println(StringUtils.startsWithAny("abef", new String[]{"ge", "af", "ab"}));
		//判斷結尾是否相同
		System.out.println(StringUtils.endsWith("abcdef", "def"));
		//判斷結尾是否相同,不區分大小寫
		System.out.println(StringUtils.endsWithIgnoreCase("abcdef", "Def"));
		//字串擷取~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//擷取指定位置的字元,null返回null.""返回""
		System.out.println(StringUtils.substring("國民黨", 2));
		//擷取指定區間的字元
		System.out.println(StringUtils.substring("中國人民共和國", 2, 4));
		//從左擷取指定長度的字串
		System.out.println(StringUtils.left("說點什麼好呢", 3));
		//從右擷取指定長度的字串
		System.out.println(StringUtils.right("說點什麼好呢", 3));
		//從第幾個開始擷取,三參數列示擷取的長度
		System.out.println(StringUtils.mid("說點什麼好呢", 3, 2));
		//擷取到等於第二個引數的字串為止
		System.out.println(StringUtils.substringBefore("說點什麼好呢", "好"));
		//從左往右查到相等的字元開始,保留後邊的,不包含等於的字元。本例:什麼好呢
		System.out.println(StringUtils.substringAfter("說點什麼好呢", "點"));
		//這個也是擷取到相等的字元,但是是從右往左.本例結果:說點什麼好
		System.out.println(StringUtils.substringBeforeLast("說點什麼好點呢", "點"));
		//這個擷取同上是從右往左。但是保留右邊的字元
		System.out.println(StringUtils.substringAfterLast("說點什麼好點呢?", "點"));
		//擷取查詢到第一次的位置,和第二次的位置中間的字元。如果沒找到第二個返回null。本例結果:2010世界盃在
		System.out.println(StringUtils.substringBetween("南非2010世界盃在南非,在南非", "南非"));
		//返回引數二和引數三中間的字串,返回陣列形式
		//ArrayToList(StringUtils.substringsBetween("[a][b][c]", "[", "]"));
		//分割~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//用空格分割成陣列,null為null
		//ArrayToList(StringUtils.split("中華 人民 共和"));
		//以指定字元分割成陣列
		//ArrayToList(StringUtils.split("中華 ,人民,共和", ","));
		//以指定字元分割成陣列,第三個參數列示分隔成陣列的長度,如果為0全體分割
		//ArrayToList(StringUtils.split("中華 :人民:共和", ":", 2));
		//未發現不同的地方,指定字元分割成陣列
		//ArrayToList(StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-"));
		//未發現不同的地方,以指定字元分割成陣列,第三個參數列示分隔成陣列的長度
		//ArrayToList(StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-", 2));
		//分割,但" "不會被忽略算一個元素,二引數為null預設為空格分隔
		//ArrayToList(StringUtils.splitByWholeSeparatorPreserveAllTokens(" ab de fg ", null));
		//同上,分割," "不會被忽略算一個元素。第三個引數代表分割的陣列長度。
		//ArrayToList(StringUtils.splitByWholeSeparatorPreserveAllTokens("ab de fg", null, 3));
		//未發現不同地方,分割
		//ArrayToList(StringUtils.splitPreserveAllTokens(" ab de fg "));
		//未發現不同地方,指定字元分割成陣列
		//ArrayToList(StringUtils.splitPreserveAllTokens(" ab de fg ", null));
		//未發現不同地方,以指定字元分割成陣列,第三個參數列示分隔成陣列的長度
		//ArrayToList(StringUtils.splitPreserveAllTokens(" ab de fg ", null, 2));
		//以不同型別進行分隔
		//ArrayToList(StringUtils.splitByCharacterType("AEkjKr i39:。中文"));
		//未解
		//ArrayToList(StringUtils.splitByCharacterTypeCamelCase("ASFSRules234"));
		//拼接~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//將陣列轉換為字串形式
		//System.out.println(StringUtils.concat(getArrayData()));
		//拼接時用引數一得字元相連線.注意null也用連線符連線了
		//System.out.println(StringUtils.concatWith(",", getArrayData()));
		//也是拼接。未發現區別
		System.out.println(StringUtils.join(getArrayData()));
		//用連線符拼接,為發現區別
		System.out.println(StringUtils.join(getArrayData(), ":"));
		//拼接指定陣列下標的開始(三引數)和結束(四引數,不包含)的中間這些元素,用連線符連線
		System.out.println(StringUtils.join(getArrayData(), ":", 1, 3));
		//用於集合連線字串.用於集合
		System.out.println(StringUtils.join(getListData(), ":"));
		//移除,刪除~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//刪除所有空格符
		System.out.println(StringUtils.deleteWhitespace(" s 中 你 4j"));
		//移除開始部分的相同的字元
		System.out.println(StringUtils.removeStart("www.baidu.com", "www."));
		//移除開始部分的相同的字元,不區分大小寫
		System.out.println(StringUtils.removeStartIgnoreCase("www.baidu.com", "WWW"));
		//移除後面相同的部分
		System.out.println(StringUtils.removeEnd("www.baidu.com", ".com"));
		//移除後面相同的部分,不區分大小寫
		System.out.println(StringUtils.removeEndIgnoreCase("www.baidu.com", ".COM"));
		//移除所有相同的部分
		System.out.println(StringUtils.remove("www.baidu.com/baidu", "bai"));
		//移除結尾字元為"\n", "\r", 或者 "\r\n".
		System.out.println(StringUtils.chomp("abcrabc\r"));
		//也是移除,未解。去結尾相同字元
		System.out.println(StringUtils.chomp("baidu.com", "com"));
		//去掉末尾最後一個字元.如果是"\n", "\r", 或者 "\r\n"也去除
		System.out.println(StringUtils.chop("wwe.baidu"));
		//替換~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//替換指定的字元,只替換第一次出現的
		System.out.println(StringUtils.replaceOnce("www.baidu.com/baidu", "baidu", "hao123"));
		//替換所有出現過的字元
		System.out.println(StringUtils.replace("www.baidu.com/baidu", "baidu", "hao123"));
		//也是替換,最後一個參數列示替換幾個
		System.out.println(StringUtils.replace("www.baidu.com/baidu", "baidu", "hao123", 1));
		//這個有意識,二三引數對應的陣列,查詢二引數陣列一樣的值,替換三引數對應陣列的值。本例:baidu替換為taobao。com替換為net
		System.out.println(StringUtils.replaceEach("www.baidu.com/baidu", new String[]{"baidu", "com"}, new String[]{"taobao", "net"}));
		//同上,未發現不同
		System.out.println(StringUtils.replaceEachRepeatedly("www.baidu.com/baidu", new String[]{"baidu", "com"}, new String[]{"taobao", "net"}));
		//這個更好,不是陣列對應,是字串引數二和引數三對應替換.(二三引數不對應的話,自己看後果)
		System.out.println(StringUtils.replaceChars("www.baidu.com", "bdm", "qo"));
		//替換指定開始(引數三)和結束(引數四)中間的所有字元
		System.out.println(StringUtils.overlay("www.baidu.com", "hao123", 4, 9));
		//新增,增加~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//複製引數一的字串,引數二為複製的次數
		System.out.println(StringUtils.repeat("ba", 3));
		//複製引數一的字串,引數三為複製的次數。引數二為複製字串中間的連線字串
		System.out.println(StringUtils.repeat("ab", "ou", 3));
		//如何字串長度小於引數二的值,末尾加空格補全。(小於字串長度不處理返回)
		System.out.println(StringUtils.rightPad("海川", 4));
		//字串長度小於二引數,末尾用引數三補上,多於的擷取(擷取補上的字串)
		System.out.println(StringUtils.rightPad("海川", 4, "河流啊"));
		//同上在前面補全空格
		System.out.println(StringUtils.leftPad("海川", 4));
		//字串長度小於二引數,前面用引數三補上,多於的擷取(擷取補上的字串)
		System.out.println(StringUtils.leftPad("海川", 4, "大家好"));
		//字串長度小於二引數。在兩側用空格平均補全(測試後面補空格優先)
		System.out.println(StringUtils.center("海川", 3));
		//字串長度小於二引數。在兩側用三引數的字串平均補全(測試後面補空格優先)
		System.out.println(StringUtils.center("海川", 5, "流"));
		//只顯示指定數量(二引數)的字元,後面以三個點補充(引數一擷取+三個點=二引數)
		System.out.println(StringUtils.abbreviate("中華人民共和國", 5));
		//2頭加點這個有點亂。本例結果: ...ijklmno
		System.out.println(StringUtils.abbreviate("abcdefghijklmno", 12, 10));
		//保留指定長度,最後一個字元前加點.本例結果: ab.f
		System.out.println(StringUtils.abbreviateMiddle("abcdef", ".", 4));
		//轉換,刷選~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
		//轉換第一個字元為大寫.如何第一個字元是大寫原始返回
		System.out.println(StringUtils.capitalize("Ddf"));
		//轉換第一個字元為大寫.如何第一個字元是大寫原始返回
		System.out.println(StringUtils.uncapitalize("DTf"));
		//反向轉換,大寫變小寫,小寫變大寫
		System.out.println(StringUtils.swapCase("I am Jiang, Hello"));
		//將字串倒序排列
		System.out.println(StringUtils.reverse("中國人民"));
		//根據特定字元(二引數)分隔進行反轉
		System.out.println(StringUtils.reverseDelimited("中:國:人民", ':'));
		}

	// 將陣列轉換為List
	private static void ArrayToList(String[] str) {
		System.out.println(Arrays.asList(str) + " 長度:" + str.length);
	}

	// 獲得集合資料
	private static List getListData() {
		List list = new ArrayList();
		list.add("你好");
		list.add(null);
		list.add("他好");
		list.add("大家好");
		return list;
	}

	// 獲得陣列資料
	private static String[] getArrayData() {
		return (String[]) getListData().toArray(new String[0]);
	}

	public static void main(String[] args) {
		TestStr();
	}

相關文章