• apache 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<__>
    <__>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
  • 相关阅读:
    ES 分组排序java实现
    java多线程中的死锁、活锁、饥饿、无锁都是什么鬼?
    Java 虚拟机对锁优化所做的努力
    Docker 核心概念、安装、端口映射及常用操作命令,详细到令人发指。
    20条最最常用的Linux命令讲解
    Linux查看系统配置常用命令
    全面认识Docker和基本指令
    25个深度学习开源数据集
    Docker 简单运用
    一小时学会C# 6
  • 原文地址:https://www.cnblogs.com/ooo0/p/9276489.html
Copyright © 2020-2023  润新知