package com.jzq.common;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
/**
|
* 基本工具类
|
* @author yfx
|
*
|
*/
|
public abstract class CommonUtil {
|
|
/**
|
* 去空,null->''
|
*
|
* @param str
|
* @return
|
*/
|
public static String trim(String str, String def) {
|
if (str == null || "null".equals(str.trim()) || "".equals(str.trim())) {
|
return def;
|
} else {
|
return str.trim();
|
}
|
}
|
|
/**
|
* 去空,null->''
|
*
|
* @param str
|
* @return
|
*/
|
public static String trim(String str) {
|
if (str == null || "null".equals(str.trim())) {
|
return "";
|
} else {
|
return str.trim();
|
}
|
}
|
|
/**
|
* 去空,支持sql(发现为空时返回null)
|
*
|
* @param str
|
* @return
|
*/
|
public static String trimForSql(String str) {
|
if (str == null || "".equals(str.trim()) || "null".equals(str.trim())) {
|
return null;
|
} else {
|
return str.trim();
|
}
|
}
|
|
/**
|
* 默认转换
|
*
|
* @param obj
|
* @param cla
|
* @return
|
*/
|
@SuppressWarnings("unchecked")
|
public static <T> T parVal(Object obj, Class<T> cla) {
|
if (cla.equals(String.class)) {
|
if (obj == null || "".equals(obj + "") || "null".equals(obj)) {
|
return (T) "";
|
} else {
|
return (T) (obj + "");
|
}
|
} else {
|
try {
|
if (obj == null)
|
return null;
|
if (cla.equals(Integer.class))
|
return (T) Integer.valueOf(obj + "");
|
if (cla.equals(Long.class))
|
return (T) Long.valueOf(obj + "");
|
if (cla.equals(Float.class))
|
return (T) Float.valueOf(obj + "");
|
if (cla.equals(Double.class))
|
return (T) Double.valueOf(obj + "");
|
if (cla.equals(Boolean.class))
|
return (T) Boolean.valueOf(obj + "");
|
return (T) obj;
|
} catch (Exception e) {
|
throw new RuntimeException("CommonUtil.parVal error|obj:" + obj+ ",class:" + cla);
|
}
|
}
|
}
|
|
/**
|
* 不返回错误的转换
|
*
|
* @param obj
|
* @param cla
|
* @return
|
*/
|
public static <T> T parValNoErr(Object obj, Class<T> cla) {
|
try {
|
return parVal(obj, cla);
|
} catch (Exception e) {
|
return null;
|
}
|
}
|
|
/**
|
* 不返回错误的转换,为空或异常时返回默认值
|
* @param obj
|
* @param cla
|
* @param t
|
* @return
|
*/
|
public static <T> T parValNoErrDef(Object obj, Class<T> cla, T t) {
|
try {
|
T t1 = parVal(obj, cla);
|
if (t1 == null || (cla.equals(String.class) && "".equals(t1))) {
|
return t;
|
}
|
return t1;
|
} catch (Exception e) {
|
return t;
|
}
|
}
|
|
/**
|
* 补位数据 ,前补0
|
* @param src
|
* @param length
|
* @return
|
*/
|
public static String conver0(Object src, int length) {
|
if(src instanceof Number){
|
return String.format("%0"+length+"d",src);
|
}else if(src instanceof String){
|
String str1=((String)src);
|
if(str1.length()<length){
|
return conver0(0,length-str1.length())+str1;
|
}else{
|
return str1;
|
}
|
}else{
|
return src+"";
|
}
|
}
|
|
/**
|
* 遮挡字符串
|
* 1、当字符串的长度小于总显示的位数时,将把字符串所有字符以*返回
|
* 2、当字符串的长度等于总显示的位数时,将把字符串前面位数显示后面位数以*拼接
|
* 3、当字符串的长度大于总显示的位数时,将把字符串前面与后面位数显示出来,中间以*拼接
|
* @param str
|
* @param a 字符串显示前几位
|
* @param b 字符串显示后几位
|
* @return
|
*/
|
public static String privacyStr(String str,int a,int b){
|
if (StringUtils.isBlank(str)) {
|
return null;
|
}
|
int length = str.length();
|
String start = "";
|
String end = "";
|
String temp = "";
|
int le = 0;
|
int num = a+b;
|
if (length<num) {
|
le = length;
|
}else if (length==num) {
|
le = length-a;
|
start = str.substring(0, a);
|
}else if (length>num) {
|
start = str.substring(0, a);
|
end = str.substring(length-b);
|
le = length-num;
|
}
|
for (int i = 0; i < le; i++) {
|
temp+="*";
|
}
|
return start+temp+end;
|
}
|
|
|
}
|