转载自:StringUtils的常见方法
转载自:https://blog.csdn.net/simple_smile_sun/article/details/51819158
1 注:运用StringUtils需要导入相关jar文件,commons-lang3-3.1.jar 2 3 4 5 import org.apache.commons.lang3.StringUtils; 6 7 public static void main(String[] args) { 8 9 String str = "dskeabceead"; 10 11 String after = StringUtils.substringAfter(str, "e"); 12 System.out.println("after:"+after); 13 14 String afterLast = StringUtils.substringAfterLast(str, "e"); 15 System.out.println("afterLast:"+afterLast); 16 17 String before = StringUtils.substringBefore(str, "e"); 18 System.out.println("before:"+before); 19 20 String beforeLast = StringUtils.substringBeforeLast(str, "e"); 21 System.out.println("beforeLast:"+beforeLast); 22 23 } 24 25 26 27 运行结果: 28 29 after:abceead 30 afterLast:ad 31 before:dsk 32 beforeLast:dskeabce 33 34 35 36 其它方法不再一一验证: 37 38 1. public static boolean isEmpty(String str) 39 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0 40 下面是 StringUtils 判断是否为空的示例: 41 42 StringUtils.isEmpty(null) = true 43 StringUtils.isEmpty("") = true 44 StringUtils.isEmpty(" ") = false //注意在 StringUtils 中空格作非空处理 45 StringUtils.isEmpty(" ") = false 46 StringUtils.isEmpty("bob") = false 47 StringUtils.isEmpty(" bob ") = false 48 49 50 51 2. public static boolean isNotEmpty(String str) 52 判断某字符串是否非空,等于 !isEmpty(String str) 53 下面是示例: 54 55 StringUtils.isNotEmpty(null) = false 56 StringUtils.isNotEmpty("") = false 57 StringUtils.isNotEmpty(" ") = true 58 StringUtils.isNotEmpty(" ") = true 59 StringUtils.isNotEmpty("bob") = true 60 StringUtils.isNotEmpty(" bob ") = true 61 62 3. public static boolean isBlank(String str) 63 判断某字符串是否为空或长度为0或由空白符(whitespace) 构成 64 下面是示例: 65 StringUtils.isBlank(null) = true 66 StringUtils.isBlank("") = true 67 StringUtils.isBlank(" ") = true 68 StringUtils.isBlank(" ") = true 69 StringUtils.isBlank("\t \n \f \r") = true //对于制表符、换行符、换页符和回车符 70 71 StringUtils.isBlank() //均识为空白符 72 StringUtils.isBlank("\b") = false //"\b"为单词边界符 73 StringUtils.isBlank("bob") = false 74 StringUtils.isBlank(" bob ") = false 75 76 4. public static boolean isNotBlank(String str) 77 判断某字符串是否不为空且长度不为0且不由空白符(whitespace) 构成,等于 !isBlank(String str) 78 下面是示例: 79 80 StringUtils.isNotBlank(null) = false 81 StringUtils.isNotBlank("") = false 82 StringUtils.isNotBlank(" ") = false 83 StringUtils.isNotBlank(" ") = false 84 StringUtils.isNotBlank("\t \n \f \r") = false 85 StringUtils.isNotBlank("\b") = true 86 StringUtils.isNotBlank("bob") = true 87 StringUtils.isNotBlank(" bob ") = true 88 89 5. public static String trim(String str) 90 去掉字符串两端的控制符(control characters, char <= 32) , 如果输入为 null 则返回null 91 下面是示例: 92 StringUtils.trim(null) = null 93 StringUtils.trim("") = "" 94 StringUtils.trim(" ") = "" 95 StringUtils.trim(" \b \t \n \f \r ") = "" 96 StringUtils.trim(" \n\tss \b") = "ss" 97 StringUtils.trim(" d d dd ") = "d d dd" 98 StringUtils.trim("dd ") = "dd" 99 StringUtils.trim(" dd ") = "dd" 100 101 6. public static String trimToNull(String str) 102 去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或"",则返回 null 103 下面是示例: 104 StringUtils.trimToNull(null) = null 105 StringUtils.trimToNull("") = null 106 StringUtils.trimToNull(" ") = null 107 StringUtils.trimToNull(" \b \t \n \f \r ") = null 108 StringUtils.trimToNull(" \n\tss \b") = "ss" 109 StringUtils.trimToNull(" d d dd ") = "d d dd" 110 StringUtils.trimToNull("dd ") = "dd" 111 StringUtils.trimToNull(" dd ") = "dd" 112 113 7. public static String trimToEmpty(String str) 114 去掉字符串两端的控制符(control characters, char <= 32) ,如果变为 null 或 "" ,则返回 "" 115 下面是示例: 116 StringUtils.trimToEmpty(null) = "" 117 StringUtils.trimToEmpty("") = "" 118 StringUtils.trimToEmpty(" ") = "" 119 StringUtils.trimToEmpty(" \b \t \n \f \r ") = "" 120 StringUtils.trimToEmpty(" \n\tss \b") = "ss" 121 StringUtils.trimToEmpty(" d d dd ") = "d d dd" 122 StringUtils.trimToEmpty("dd ") = "dd" 123 StringUtils.trimToEmpty(" dd ") = "dd" 124 125 8. public static String strip(String str) 126 去掉字符串两端的空白符(whitespace) ,如果输入为 null 则返回 null 127 下面是示例(注意和 trim() 的区别): 128 StringUtils.strip(null) = null 129 StringUtils.strip("") = "" 130 StringUtils.strip(" ") = "" 131 StringUtils.strip(" \b \t \n \f \r ") = "\b" 132 StringUtils.strip(" \n\tss \b") = "ss \b" 133 StringUtils.strip(" d d dd ") = "d d dd" 134 StringUtils.strip("dd ") = "dd" 135 StringUtils.strip(" dd ") = "dd" 136 137 9. public static String stripToNull(String str) 138 去掉字符串两端的空白符(whitespace) ,如果变为 null 或"",则返回 null 139 下面是示例(注意和 trimToNull() 的区别): 140 StringUtils.stripToNull(null) = null 141 StringUtils.stripToNull("") = null 142 StringUtils.stripToNull(" ") = null 143 StringUtils.stripToNull(" \b \t \n \f \r ") = "\b" 144 StringUtils.stripToNull(" \n\tss \b") = "ss \b" 145 StringUtils.stripToNull(" d d dd ") = "d d dd" 146 StringUtils.stripToNull("dd ") = "dd" 147 StringUtils.stripToNull(" dd ") = "dd" 148 149 10. public static String stripToEmpty(String str) 150 去掉字符串两端的空白符(whitespace) ,如果变为 null 或"" ,则返回"" 151 下面是示例(注意和 trimToEmpty() 的区别): 152 StringUtils.stripToNull(null) = "" 153 StringUtils.stripToNull("") = "" 154 StringUtils.stripToNull(" ") = "" 155 StringUtils.stripToNull(" \b \t \n \f \r ") = "\b" 156 StringUtils.stripToNull(" \n\tss \b") = "ss \b" 157 StringUtils.stripToNull(" d d dd ") = "d d dd" 158 StringUtils.stripToNull("dd ") = "dd" 159 StringUtils.stripToNull(" dd ") = "dd" 160 161 以下方法只介绍其功能,不再举例: 162 11. public static String strip(String str, String stripChars) 163 去掉 str 两端的在 stripChars 中的字符。 164 如果 str 为 null 或等于"" ,则返回它本身; 165 如果 stripChars 为 null 或"" ,则返回 strip(String str) 。 166 167 12. public static String stripStart(String str, String stripChars) 168 和11相似,去掉 str 前端的在 stripChars 中的字符。 169 170 13. public static String stripEnd(String str, String stripChars) 171 和11相似,去掉 str 末端的在 stripChars 中的字符。 172 173 14. public static String[] stripAll(String[] strs) 174 对字符串数组中的每个字符串进行 strip(String str) ,然后返回。 175 如果 strs 为 null 或 strs 长度为0,则返回 strs 本身 176 177 15. public static String[] stripAll(String[] strs, String stripChars) 178 对字符串数组中的每个字符串进行 strip(String str, String stripChars) ,然后返回。 179 如果 strs 为 null 或 strs 长度为0,则返回 strs 本身 180 181 16. public static boolean equals(String str1, String str2) 182 比较两个字符串是否相等,如果两个均为空则也认为相等。 183 184 17. public static boolean equalsIgnoreCase(String str1, String str2) 185 比较两个字符串是否相等,不区分大小写,如果两个均为空则也认为相等。 186 187 18. public static int indexOf(String str, char searchChar) 188 返回字符 searchChar 在字符串 str 中第一次出现的位置。 189 如果 searchChar 没有在 str 中出现则返回-1, 190 如果 str 为 null 或 "" ,则也返回-1 191 192 19. public static int indexOf(String str, char searchChar, int startPos) 193 返回字符 searchChar 从 startPos 开始在字符串 str 中第一次出现的位置。 194 如果从 startPos 开始 searchChar 没有在 str 中出现则返回-1, 195 如果 str 为 null 或 "" ,则也返回-1 196 197 20. public static int indexOf(String str, String searchStr) 198 返回字符串 searchStr 在字符串 str 中第一次出现的位置。 199 如果 str 为 null 或 searchStr 为 null 则返回-1, 200 如果 searchStr 为 "" ,且 str 为不为 null ,则返回0, 201 如果 searchStr 不在 str 中,则返回-1 202 203 21. public static int ordinalIndexOf(String str, String searchStr, int ordinal) 204 返回字符串 searchStr 在字符串 str 中第 ordinal 次出现的位置。 205 如果 str=null 或 searchStr=null 或 ordinal<=0 则返回-1 206 举例(*代表任意字符串): 207 StringUtils.ordinalIndexOf(null, *, *) = -1 208 StringUtils.ordinalIndexOf(*, null, *) = -1 209 StringUtils.ordinalIndexOf("", "", *) = 0 210 StringUtils.ordinalIndexOf("aabaabaa", "a", 1) = 0 211 StringUtils.ordinalIndexOf("aabaabaa", "a", 2) = 1 212 StringUtils.ordinalIndexOf("aabaabaa", "b", 1) = 2 213 StringUtils.ordinalIndexOf("aabaabaa", "b", 2) = 5 214 StringUtils.ordinalIndexOf("aabaabaa", "ab", 1) = 1 215 StringUtils.ordinalIndexOf("aabaabaa", "ab", 2) = 4 216 StringUtils.ordinalIndexOf("aabaabaa", "bc", 1) = -1 217 StringUtils.ordinalIndexOf("aabaabaa", "", 1) = 0 218 StringUtils.ordinalIndexOf("aabaabaa", "", 2) = 0 219 220 22. public static int indexOf(String str, String searchStr, int startPos) 221 返回字符串 searchStr 从 startPos 开始在字符串 str 中第一次出现的位置。 222 举例(*代表任意字符串): 223 StringUtils.indexOf(null, *, *) = -1 224 StringUtils.indexOf(*, null, *) = -1 225 StringUtils.indexOf("", "", 0) = 0 226 StringUtils.indexOf("aabaabaa", "a", 0) = 0 227 StringUtils.indexOf("aabaabaa", "b", 0) = 2 228 StringUtils.indexOf("aabaabaa", "ab", 0) = 1 229 StringUtils.indexOf("aabaabaa", "b", 3) = 5 230 StringUtils.indexOf("aabaabaa", "b", 9) = -1 231 StringUtils.indexOf("aabaabaa", "b", -1) = 2 232 StringUtils.indexOf("aabaabaa", "", 2) = 2 233 StringUtils.indexOf("abc", "", 9) = 3 234 235 23. public static int lastIndexOf(String str, char searchChar) 236 基本原理同18 237 238 24. public static int lastIndexOf(String str, char searchChar, int startPos) 239 基本原理同19 240 241 25. public static int lastIndexOf(String str, String searchStr) 242 基本原理同20 243 244 26. public static int lastIndexOf(String str, String searchStr, int startPos) 245 基本原理同22
另附:
String 的 split(String regex) 方法的用法
如果我们需要把某个字符串拆分为字符串数组,则通常用 split(String regex) 来实现。
例如:
1 String str = "aa,bb,cc,dd"; 2 String[] strArray = str.split(","); 3 System.out.println(strArray.length); 4 for (int i = 0; i < strArray.length; i++) { 5 System.out.println(strArray[i]); 6 }
结果为:
4
aa
bb
cc
dd
如果,
String str = "aa.bb.cc.dd";
String[] strArray = str.split(".");
则结果为:0
为什么结果不是我们所想的呢,原因是参数 String regex 是正则表达式 (regular expression) 而不是普通字符串,而 "." 在正则表达式中有特殊含义,表示匹配所有单个字符。如果要那样拆分,我们必须给 "." 进行转义,String[] strArray = str.split(".") 修改为 String[] strArray = str.split("\\.") 即可。
另外有关 StringUtils 的详细 API 请参见http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringUtils.html
转载自:https://blog.csdn.net/simple_smile_sun/article/details/51819158