// 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<__> <__>B", "<.*>"); // "A B" StringUtils.removeAll("A<__> <__>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