| 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; | 
|     } | 
|      | 
|   | 
| } |