字符串工具类StringUtils
字符串处理常用方法,继承org.apache.commons.lang3.StringUtils
- 对象判空
- 去除字符串中的html标签
- 字符串转换为Integer数组
- 字符串拼接
- 数组转成字符串
- 格式化文本
- 获取字符串中的第i个以s分割的字符串
- 如果一个字符串数字中小数点后全为零,则去掉小数点及零
- 转换JavaScript解析不了的特殊字符
public class StringUtils extends org.apache.commons.lang3.StringUtils {
/**
* * 判断一个对象是否为空
*
* @param object Object
* @return true:为空 false:非空
*/
public static boolean isNull(Object object) {
return object == null;
}
/**
* * 判断一个对象数组是否为空
*
* @param objects 要判断的对象数组
* @return true:为空 false:非空
*/
public static boolean isEmpty(Object[] objects) {
return isNull(objects) || (objects.length == 0);
}
/**
* 去除字符串中的html标签.
*
* <pre>
* StringUtils.replaceHtml("<td>content</td>") -> "content"
* </pre>
*
* @param html 待处理的字符串,可以为 null
* @return String 处理过的字符串,若输入为null则返回 ""
*/
public static String replaceHtml(String html) {
if (isBlank(html)) {
return EMPTY;
}
String regEx = "<.+?>";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(html);
String s = m.replaceAll(EMPTY);
return s;
}
/**
* 字符串转换为 Integer 数组.
*
* <pre>
* StringUtils.toIntegerArray("2,3,4", ",") -> [2,3,4]
* </pre>
*
* @param val 字符串
* @param regex 分隔符
* @return Integer[] Integer数组
* @throws NumberFormatException
*/
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;
}
}
/**
* 字符串拼接.
*
* <pre>
* StringUtils.appendInfo(" ", "I", "love", "you") -> I love you
* </pre>
*
* @param separator 分隔符
* @param args 待拼接字符串 s1 s2 ...
* @return String 拼接后的字符串
*/
public static String appendInfo(String separator, String... args) {
if (args == null || args.length < 1) {
return null;
}
StringBuilder result = new StringBuilder();
result.append(args[0]);
for (int i = 1; i < args.length; i++) {
result.append(separator);
result.append(args[i]);
}
return result.toString();
}
/**
* 数组转成字符串.
*
* <pre>
* StringUtils.arrayToString( new String[] {"s1", "s2", "s3"}, ",") -> s1,s2,s3
* </pre>
*
* @param args 内容数组
* @param separator 分隔符
* @return String 转换结果
*/
public static String arrayToString(Object[] args, String separator) {
StringBuilder s = new StringBuilder();
for (Object o : args) {
s.append(o).append(separator);
}
String res = s.toString();
return res.substring(0, res.length() - 1);
}
/**
* 格式化文本
*
* <pre>
* {} 表示占位符,此方法只是简单将占位符 {} 按照顺序替换为参数
* 如果想输出 {} 使用 \\转义 { 即可,如果想输出 {} 之前的 \ 使用双转义符 \\\\ 即可
* 通常使用:format("this is {} for {}", "a", "b") -> this is a for b
* 转义{}: format("this is \\{} for {}", "a", "b") -> this is {} for a
* 转义\: format("this is \\\\{} for {}", "a", "b") -> this is \a for b
* </pre>
*
* @param template 文本模板,被替换的部分用 {} 表示
* @param params 参数值
* @return String 格式化后的文本
*/
public static String format(String template, Object... params) {
if (isEmpty(params) || isEmpty(template)) {
return template;
}
return StrFormatter.format(template, params);
}
/**
* 获取字符串中的第i个以s分割的字符串
*
* <pre>
* getStr("日/凌波/吹雪", 1, "/") -> 日
* getStr("日/凌波/吹雪", 2, "/") -> 凌波
* getStr("日/凌波/吹雪", 3, "/") -> 吹雪
* </pre>
*
* @param c_Str 目标字符串
* @param c_i 位置
* @param c_Split 分割符
* @return 如果发生异常,则返回空
*/
public static String getStr(String c_Str, int c_i, String c_Split) {
String t_Str1 = "", t_Str2 = "", t_strOld = "";
int i = 0, i_Start = 0;
t_Str1 = c_Str;
t_Str2 = c_Split;
i = 0;
try {
while (i < c_i) {
i_Start = t_Str1.indexOf(t_Str2, 0);
if (i_Start >= 0) {
i += 1;
t_strOld = t_Str1;
t_Str1 = t_Str1.substring(i_Start + t_Str2.length(),
t_Str1.length());
} else {
if (i != c_i - 1) {
t_Str1 = "";
}
break;
}
}
if (i_Start >= 0) {
t_Str1 = t_strOld.substring(0, i_Start);
}
} catch (Exception ex) {
t_Str1 = "";
}
return t_Str1;
}
/**
* 如果一个字符串数字中小数点后全为零,则去掉小数点及零
*
* @param Value String
* @return String
*/
public static String removePoint(String Value) {
if (Value == null) {
return null;
}
String result = "";
boolean mflag = true;
int m = 0;
m = Value.lastIndexOf(".");
if (m == -1) {
result = Value;
} else {
for (int i = m + 1; i <= Value.length() - 1; i++) {
if (Value.charAt(i) != '0') {
result = Value;
mflag = false;
break;
}
}
if (mflag) {
result = Value.substring(0, m);
}
}
return result;
}
/**
* 转换JavaScript解析不了的特殊字符
*
* @param s String
* @return String
*/
public static String changForJavaScript(String s) {
char[] arr = s.toCharArray();
s = "";
for (int i = 0; i < arr.length; i++) {
if (arr[i] == '"' || arr[i] == '\'' || arr[i] == '\n') {
s += "\\";
}
s += arr[i];
}
return s;
}
}