import java.io.UnsupportedEncodingException;
import java.util.Collection;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public final class StringUtils {
/**
* 判断对象是否为空
**/
public static boolean isEmpty(Object... objs) {
if (objs == null || objs.length == 0) {
return true;
}
for (Object obj : objs) {
if (obj == null) {
return true;
} else if ("".equals(obj.toString().trim())) {
return true;
} else if (obj instanceof Collection) {
Collection collection = (Collection) obj;
if (collection.isEmpty()) {
return true;
}
} else if (obj instanceof Map) {
Map map = (Map) obj;
if (map.isEmpty()) {
return true;
}
}
}
return false;
}
/**
* 判断字符串是否存在不为空
**/
public static boolean hasNotEmpty(String... objs) {
if (objs == null || objs.length == 0) {
return false;
}
for (Object obj : objs) {
if (obj != null && obj != "") {
return true;
}
}
return false;
}
/**
* 判断对象是否为空
**/
public static boolean isNotEmpty(Object... objs) {
return !isEmpty(objs);
}
/**
* 对象为空 则替换另外一个对象
*/
public static <T> T isEmptyReplace(T checkStr, T replace) {
return isEmpty(checkStr) ? replace : checkStr;
}
/**
* 判断字符串是否超过len个长度 不超过直接返回 超过则截取前len个长度返回
*
* @param src 原字符串
* @param len 需要判断的航都
* @return 返回结果字符串
*/
public static String isEnoughSubstr(String src, int len) {
return null == src ? null : src.length() <= len ? src : src.substring(0, len);
}
/**
* 判断字符串中是否包含中文
*
* @param str 待校验字符串
* @return 是否为中文
* @warn 不能校验是否为中文标点符号
*/
public static boolean isContainChinese(String str) {
Pattern p = Pattern.compile("[\u4e00-\u9fa5]");
Matcher m = p.matcher(str);
if (m.find()) {
return true;
}
return false;
}
/**
* 字符串补全
*
* @param src 原字符串
* @param len 长度
* @param flag 0 左边 否则 右边
* @param c 填补字符
* @return 补全后字符串
*/
public static String stringPadding(String src, int len, int flag, String c) {
StringBuffer result = new StringBuffer();
if (c.length() != 1) {
return src;
}
int num = 0;
try {
num = src.getBytes("gbk").length;
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
if (result.length() < len) {
if (0 == flag) {
for (int i = 0; i < len - num; i++) {
result.append(c);
}
result.append(src);
} else {
result.append(src);
for (int i = 0; i < len - num; i++) {
result.append(c);
}
}
return result.toString();
} else {
return result.toString();
}
}
/**
* 是否有一个不为空
*/
public static boolean isAnyNotEmpty(Object... objs) {
if (objs == null || objs.length == 0) {
return false;
}
for (Object obj : objs) {
if (!isEmpty(obj)) {
return true;
}
}
return false;
}
/**
* 获取文件名尾缀 例如 demo.txt
* return txt
*/
public static String getFileSuffix(String fileName) {
if (StringUtils.isEmpty(fileName) || !fileName.contains(".")) {
throw new BizException("当前文件格式不支持");
}
return fileName.substring(fileName.lastIndexOf(".") + 1);
}
}