一、常用的String 類
org.apache.commons.lang3包下的StringUtils類
二、自定義工具類(在StringUtils基礎上改裝)
import org.apache.commons.lang3.ArrayUtils;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtils {
/**
* 空字符串.
*/
public static final String EMPTY_STRING = "";
/**
* TODO 去除字符串中的html標簽.
* <pre>
* UnCommonStringUtils.replaceHtml(null) = ""
* UnCommonStringUtils.replaceHtml("") = ""
* UnCommonStringUtils.replaceHtml("<td>content</td>") = "content"
* UnCommonStringUtils.replaceHtml("<>content</td>") = ""
* </pre>
*
* @param html 待處理的字符串,可以為 null
* @return String 處理過的字符串,若輸入為null則返回 null
* @since 1.0
*/
public static String replaceHtml(String html) {
if (org.apache.commons.lang3.StringUtils.isBlank(html)) {
return UnCommonStringUtils.EMPTY_STRING;
}
String regEx = "<.+?>";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(html);
String s = m.replaceAll(UnCommonStringUtils.EMPTY_STRING);
return s;
}
/**
* TODO 字符串轉換為 Integer 數組.
* UnCommonStringUtils.toIntegerArray(null, ",") == []
* UnCommonStringUtils.toIntegerArray("", ",") == []
* UnCommonStringUtils.toIntegerArray(" ", ",") == []
* UnCommonStringUtils.toIntegerArray("2,3,4", ",") == [2,3,4]
*
* @param val 字符串
* @param regex 分隔符
* @return Integer[] Integer數組
* @throws NumberFormatException
* @since 1.0
*/
public static Integer[] toIntegerArray(String val, String regex) throws NumberFormatException {
if (isBlank(val)) {
return new Integer[0];
} else {
String[] valArr = val.split(regex);
int arrLen = valArr.length;
Integer[] it = new Integer[arrLen];
for (int i = 0; i < arrLen; i++) {
it[i] = Integer.parseInt(valArr[i].trim());
}
return it;
}
}
/**
* TODO 數組轉成字符串,可在打印日志的時候用.
*
* @param args 內容數組
* @return 轉換結果(不同的數據項用半角逗號隔開)
*/
public static String argsToString(Object[] args) {
StringBuilder s = new StringBuilder("args:[");
for (Object o : args) {
s.append(o).append(",");
}
s.append("]");
return s.toString();
}
/**
* TODO 將每一個元素都為字符串的 list 轉換為以逗號分割的字符串.
*
* @param list 待處理的 list
* @return String 處理過的以逗號分隔的字符串
* @since 1.0
*/
public static String argsToString(List<String> list) {
StringBuilder s = new StringBuilder();
if (list == null || list.size() == 0) {
return UnCommonStringUtils.EMPTY_STRING;
} else {
s.append(list.get(0));
for (int i = 1; i < list.size(); i++) {
s.append(",").append(list.get(i));
}
return s.toString();
}
}
/**
* TODO 判斷字符串數組是否有字符串為空或者空字符串.
* UnCommonStringUtils.isNullOrEmpty(null) = true
* UnCommonStringUtils.isNullOrEmpty(null, "foo") = true
* UnCommonStringUtils.isNullOrEmpty("", "bar") = true
* UnCommonStringUtils.isNullOrEmpty("bob", "") = true
* UnCommonStringUtils.isNullOrEmpty(" bob ", null) = true
* UnCommonStringUtils.isNullOrEmpty(" ", "bar") = false
* UnCommonStringUtils.isNullOrEmpty("foo", "bar") = false
*
* @param str 需要驗證的字符串
* @return Boolean 若字符串數組中包含空或者空字符串,則返回true
* @since 1.0
*/
public static Boolean isNullOrEmpty(String... str) {
if (ArrayUtils.isEmpty(str)) {
return true;
} else {
for (String s : str) {
if (s == null || s.isEmpty()) {
return true;
}
}
return false;
}
}
/**
* TODO 判斷字符串是否非空、非空字符串或者不僅僅由空白字符組成.
* UnCommonStringUtils.isNotBlank(null) = false
* UnCommonStringUtils.isNotBlank("") = false
* UnCommonStringUtils.isNotBlank(" ") = false
* UnCommonStringUtils.isNotBlank("bob") = true
* UnCommonStringUtils.isNotBlank(" bob ") = true
*
* @param str 需要驗證的字符串,可以為null
* @return boolean 若非空、非空字符串或者不僅僅由空白字符組成,則返回true
* @since 1.0
*/
public static boolean isNotBlank(String str) {
return org.apache.commons.lang3.StringUtils.isNotBlank(str);
}
/**
* TODO 判斷字符串是否為非空或者非空字符串.
* UnCommonStringUtils.isNotEmpty(null) = false
* UnCommonStringUtils.isNotEmpty("") = false
* UnCommonStringUtils.isNotEmpty(" ") = true
* UnCommonStringUtils.isNotEmpty("bob") = true
* UnCommonStringUtils.isNotEmpty(" bob ") = true
* </pre>
*
* @param str 需要驗證的字符串,可以為null
* @return boolean 若非空或者非空字符串,則返回true
* @since 1.0
*/
public static boolean isNotEmpty(String str) {
return org.apache.commons.lang3.StringUtils.isNotEmpty(str);
}
/**
* TODO 判斷字符串是否為空或者空字符串.
* UnCommonStringUtils.isEmpty(null) = true
* UnCommonStringUtils.isEmpty("") = true
* UnCommonStringUtils.isEmpty(" ") = false
* UnCommonStringUtils.isEmpty("bob") = false
* UnCommonStringUtils.isEmpty(" bob ") = false
*
* @param str 需要驗證的字符串
* @return boolean 若字符串為空或者空字符串,返回true
* @since 1.0
*/
public static boolean isEmpty(String str) {
return org.apache.commons.lang3.StringUtils.isEmpty(str);
}
/**
* TODO 判斷字符串是否為空、空字符串或者僅由空白字符組成.
* UnCommonStringUtils.isBlank(null) = true
* UnCommonStringUtils.isBlank("") = true
* UnCommonStringUtils.isBlank(" ") = true
* UnCommonStringUtils.isBlank("bob") = false
* UnCommonStringUtils.isBlank(" bob ") = false
*
* @param str 需要驗證的字符串,可以為null
* @return boolean 若為空、空字符串或者僅由空白字符組成,則返回true
* @since 1.0
*/
public static boolean isBlank(String str) {
return org.apache.commons.lang3.StringUtils.isBlank(str);
}
/**
* TODO 移除字符串開頭和結尾的空白字符包括空格、制表符等.
* UnCommonStringUtils.trim(null) = null
* UnCommonStringUtils.trim("") = ""
* UnCommonStringUtils.trim(" ") = ""
* UnCommonStringUtils.trim("abc") = "abc"
* UnCommonStringUtils.trim(" abc ") = "abc"
*
* @param str 需要處理的字符串,可以為空
* @return String 處理過的字符串,若輸入的字符串為空,則返回null
* @since 1.0
*/
public static String trim(String str) {
return org.apache.commons.lang3.StringUtils.trim(str);
}
/**
* TODO 比較兩個字符串是否相等.
* <pre>
* UnCommonStringUtils.equals(null, null) = true
* UnCommonStringUtils.equals(null, "abc") = false
* UnCommonStringUtils.equals("abc", null) = false
* UnCommonStringUtils.equals("abc", "abc") = true
* UnCommonStringUtils.equals("abc", "ABC") = false
* </pre>
*
* @param str1 第一個字符串
* @param str2 第二個字符串
* @return boolean 若兩個字符串相等則返回true
* @since 1.0
*/
public static boolean equals(String str1, String str2) {
return org.apache.commons.lang3.StringUtils.equals(str1, str2);
}
/**
* TODO 忽略大小寫,比較兩個字符串是否相等,若相等則返回true,反之則返回false.
* <pre>
* UnCommonStringUtils.equalsIgnoreCase(null, null) = true
* UnCommonStringUtils.equalsIgnoreCase(null, "abc") = false
* UnCommonStringUtils.equalsIgnoreCase("abc", null) = false
* UnCommonStringUtils.equalsIgnoreCase("abc", "abc") = true
* UnCommonStringUtils.equalsIgnoreCase("abc", "ABC") = true
* </pre>
*
* @param str1 第一個字符串
* @param str2 第二個字符串
* @return boolean 忽略大小寫,若兩個字符串相等,則返回ture
* @since 1.0
*/
public static boolean equalsIgnoreCase(String str1, String str2) {
return org.apache.commons.lang3.StringUtils.equalsIgnoreCase(str1, str2);
}
/**
* TODO 將字符串轉化為大寫.
* <pre>
* UnCommonStringUtils.upperCase(null) = null
* UnCommonStringUtils.upperCase("") = ""
* UnCommonStringUtils.upperCase("aBc") = "ABC"
* </pre>
*
* @param str 需要轉化的字符串
* @return String 轉化后的字符串,若輸入null則返回null
* @since 1.0
*/
public static String upperCase(String str) {
return org.apache.commons.lang3.StringUtils.upperCase(str);
}
/**
* TODO 將字符串轉化為小寫.
* <p>
* <pre>
* UnCommonStringUtils.lowerCase(null) = null
* UnCommonStringUtils.lowerCase("") = ""
* UnCommonStringUtils.lowerCase("aBc") = "abc"
* </pre>
*
* @param str 需要轉化的字符串
* @return String 轉化后的字符串,若輸入null則返回null
* @since 1.0
*/
public static String lowerCase(String str) {
return org.apache.commons.lang3.StringUtils.lowerCase(str);
}
/**
* TODO htmlEscape(html轉義)
*
* @param content 待轉義字符串
* @return String 轉義后字符串
* @since 1.0
*/
public static String htmlEscape(String content) {
if (isNullOrEmpty(content)) {
return EMPTY_STRING;
}
String html = content;
html = html.replaceAll("&", "&");
// "
html = html.replace(""", "\"");
// 替換跳格
html = html.replace(" ", "\t");
// 替換空格
html = html.replace(" ", " ");
html = html.replace("<", "<");
html = html.replaceAll(">", ">");
return html;
}
}
