StringUtils 工具类

// org.apache.commons.lang3.StringUtils

// 1.IsEmpty/IsBlank - checks if a String contains text 检查是否为空
boolean empty = StringUtils.isEmpty(""); // 调用cs == null || cs.length() == 0
// System.out.println(empty);
boolean blank = StringUtils.isBlank(" "); // 调用cs == null || cs.length() == 0 和  遍历每个字符Character.isWhitespace(cs.charAt(i))
// System.out.println(blank);

// 扩展:isWhitespace() 方法用于判断指定字符是否为空白字符,空白符包含:空格、tab键、换行符。
// http://www.runoob.com/java/character-iswhitespace.html

// 2.Trim/Strip - removes leading and trailing whitespace 移除前后空白
String trim = StringUtils.trim("  abc  "); // 调用str.trim()
// System.out.println(trim); //"abc"
StringUtils.trimToEmpty(""); // 调用str == null ? "" : str.trim()
StringUtils.trimToNull(""); // 调用 trim(str),再调用isEmpty(ts)

String strip = StringUtils.strip("abcdabc", "abc"); // 按指定字符前后截取 ,调用indexOf()和subString()
// System.out.println(strip); //"  abc"
// 参考:StringUtils中strip、stripStart、stripEnd剥离方法源码详解
// https://blog.csdn.net/yaomingyang/article/details/79169547

// 3.Equals/Compare - compares two strings null-safe 判断相等/比较
StringUtils.equals("abc", "abc"); // 判断相等,调用==,equals,regionMatches
StringUtils.equalsIgnoreCase("abc", "ABC"); // 判断相等(忽略大小写)
StringUtils.equalsAny("abc", "abc", "def"); // 判断第一个字符与后面任意字符串相等,遍历调用equals判断第一个字符与后面字符是否相等
StringUtils.equalsAnyIgnoreCase("abc", "ABC", "def"); // 判断第一个字符与后面任意字符串相等(忽略大小写)

// 扩展:regionMatches() 方法用于检测两个字符串在一个区域内是否相等。
// http://www.runoob.com/java/java-string-regionmatches.html

// 4.startsWith - check if a String starts with a prefix null-safe
StringUtils.startsWith("abcdef", "abc"); // true 以什么开头,调用CharSequenceUtils.regionMatches
StringUtils.startsWithIgnoreCase("ABCDEF", "abc"); // true
StringUtils.startsWithAny("abcxyz", new String[] { null, "xyz", "abc" }); // true
StringUtils.startsWithAny("ABCXYZ", null, "xyz", "abc"); // false
// 还可使用: java.lang.String.startsWith
"abcdef".startsWith("abc");

// 5.endsWith - check if a String ends with a suffix null-safe
StringUtils.endsWith("abcdef", "def"); // true
StringUtils.endsWithIgnoreCase("ABCDEF", "def"); // true
StringUtils.endsWithAny("abcxyz", new String[] { null, "xyz", "abc" }); // true

// 6.IndexOf/LastIndexOf/Contains - null-safe index-of checks
StringUtils.indexOf("aabaabaa", "ab"); // 1 调用CharSequenceUtils.indexOf
StringUtils.indexOf("aabaabaa", "ab", 0); // 1 从第3位开始查找,"b"首次出现的位置
StringUtils.ordinalIndexOf("aabaabaa", "ab", 1); // 1
StringUtils.indexOfIgnoreCase("aabaabaa", "AB"); // 1 调用CharSequenceUtils.regionMatches
StringUtils.indexOfIgnoreCase("aabaabaa", "AB", 0); // 1
StringUtils.lastIndexOf("aabaabaa", "ab"); // 4 调用CharSequenceUtils.lastIndexOf
StringUtils.lastIndexOf("aabaabaa", 'b', 8); // 5
StringUtils.lastIndexOf("aabaabaa", 'b', 4); // 2
StringUtils.lastIndexOf("aabaabaa", 'b', 0); // -1
StringUtils.contains("abc", 'a'); // true 调用CharSequenceUtils.indexOf
StringUtils.containsIgnoreCase("abc", "A"); // true
StringUtils.containsWhitespace("1 2"); // true 是否包含空字符,调用Character.isWhitespace
// 还可使用: java.lang.String.indexOf
"aabaabaa".indexOf("ab");

// 7.IndexOfAny/LastIndexOfAny/IndexOfAnyBut/LastIndexOfAnyBut - index-of any of a set of Strings
StringUtils.indexOfAny("aabaabaa", "ab", "a");
StringUtils.indexOfAny("aabaabaa", new char[] { 'a', 'b' });
StringUtils.lastIndexOfAny("aabaabaa", "ab", "a");
StringUtils.indexOfAnyBut("sdsfhhl0", "h");//结果是0  找出字符串中不在字符数组searchars中的第一个字符出现的位置(从0位开始)
StringUtils.indexOfAnyBut("sdsfhhl0", "s");//结果是1
StringUtils.indexOfAnyBut("aa", "aa");//结果是-1

// 8.ContainsOnly/ContainsNone/ContainsAny - does String contains only/none/any of these characters
StringUtils.containsOnly("abab", new char[] { 'a', 'b', 'c' }); // true 检查字符串(参数1)中的字符是否全为字符串(参数2)中的字符的子集.
StringUtils.containsOnly("abab", "abc");
StringUtils.containsAny("zzabyycdxx", new char[] { 'z', 'a' });// true
StringUtils.containsNone("abab", new char[] { 'x', 'y', 'z' }); // true
// 还可使用: java.lang.String.contains
"aabaabaa".contains("ab"); // 调用String.indexOf

// 9.Substring/Left/Right/Mid - null-safe substring extractions
StringUtils.substring("abc", 2); // "c" 调用str.substring
StringUtils.substring("abc", 0, 2); // "ab"
StringUtils.left("abc", 2); // "ab"
StringUtils.right("abc", 2); // "bc"
// 还可使用: java.lang.String.substring
"abc".substring(0, 2); // "ab"  调用new String("abc".getBytes(), 0, 2);

// 10.SubstringBefore/SubstringAfter/SubstringBetween - substring extraction relative to other strings
StringUtils.substringBefore("abc", "c"); // "ab" 截取指定字符串之前的内容
StringUtils.substringAfter("abc", "a"); // "bc"
StringUtils.substringBeforeLast("abcba", "b"); // "abc" 一直找到最后一个指定的字符串
StringUtils.substringAfterLast("abcba", "b"); // "a"
StringUtils.substringBetween("tagabctag", "tag"); // "abc"
StringUtils.substringBetween("yabczyabcz", "y", "z"); // "abc"
StringUtils.substringsBetween("[a][b][c]", "[", "]"); // ["a","b","c"]

// 11.Split/Join - splits a String into an array of substrings and vice versa
StringUtils.split("abc def"); // ["abc", "def"]
StringUtils.split("a.b.c", '.'); // ["a", "b", "c"]
StringUtils.split("ab:cd:ef", ":", 2); // ["ab", "cd:ef"] 2设定返回数组的最大长度
StringUtils.splitByWholeSeparator("ab-!-cd-!-ef", "-!-");
StringUtils.join("a", "b", "c"); // "abc"
// 还可使用: java.lang.String.split/join
"ab:cd:ef".split(":");
String.join("a", "b", "c");

// 12.Remove/Delete - removes part of a String
StringUtils.remove("queued", 'u'); // "qeed"
StringUtils.removeAll("A<__>\n<__>B", "<.*>"); // "A\nB"
StringUtils.removeAll("A<__>\n<__>B", "(?s)<.*>"); // "AB"
StringUtils.removeAll("ABCabc123abc", "[a-z]"); // "ABC123"
StringUtils.deleteWhitespace("   ab  c  "); // "abc"

// 13.Replace/Overlay - Searches a String and replaces one String with another
StringUtils.replace("aba", "a", "z"); // "zbz"
StringUtils.replaceIgnoreCase("aba", "A", "z"); // "zbz"
StringUtils.replace("abaa", "a", "z", 1); // "zbaa"
StringUtils.replaceEach("abcde", new String[] { "ab", "d" }, new String[] { "d", "t" }); //"dcte"
StringUtils.overlay("abcdef", "zzzz", 2, 4); // "abzzzzef"
// 还可使用: java.lang.String.replace
"aba".replace("a", "z");

System.out.println();

// 官方文档:https://commons.apache.org/proper/commons-lang/javadocs/api-release/index.html
// jdk文档:http://tool.oschina.net/apidocs/apidoc?api=jdk_7u4
// 参考:https://www.cnblogs.com/linjiqin/p/3425359.html

猜你喜欢

转载自www.cnblogs.com/ooo0/p/9276489.html