一、定義加驗地註解類
/**
* @description:加掩碼註解
* @author: yunpeng.zhao
* @date 2017-08-19 18:51
*/@target()
@retention(runtime)
@documented
public @inte***ce cover
二、加驗工具類
/***
* @descriptoin:常用工具類
* @author: yunpeng.zhao
* @date: 2017/3/15
*/public class coverutils
/*** 取卡號後四位
* @param cardno
* @return
*/public static string getlast4cardno(string cardno)
} catch (exception e)
return cardno;
}/**
* 對卡號進行遮蓋,只顯示前6後4
* @param cardno
* @return
*/public static string covercardno(string cardno)
} catch (exception e)
return cardno;
}/***
* 對敏感資訊進行遮掩
* @param coverstr
* @return
*/public static string cover(string coverstr)else if(coverstr.length() > 4)else if(coverstr.length() > 0)
}} catch (exception e)
return coverstr;
}/***
* 通過註解tostring方法
* @param object
* @return
*/public static string tostring(object object)
/***
* 通過註解tostring方法
* @param object
* @param isformatbigdecimal
* @return
*/public static string tostring(object object, boolean isformatbigdecimal)
class<?> clazz = object.getclass();
mapparammap = new hashmap(16);
listobjects = new arraylist();
listfieldlist = getobjectfields(object);
for(field field : fieldlist)else
if(o instanceof enum)else if(o instanceof double)else if(o instanceof bigdecimal && isformatbigdecimal)else if(o.getclass().tostring().contains("com.yeepay.g3") && fieldannotationpresent)else if("extendmap".equals(field.getname()))else
}} catch (illegalacces***ception e)
}return jsonutils.tojsonstring(parammap);
}/***
* 通過引數名重新tostring方法
* @param object
* @param coverparams
* @return
*/public static string tostring(object object, string coverparams)}}
return jsonobject.tojsonstring(map);
}return str;
}/***
* 通過引數名設定物件成員對應值
* @param object
* @param fieldname
* @param value
*/public static void setfieldvalue(object object, string fieldname, object value)
try catch (exception e)
}/***
* 獲取物件成員資訊
* @param object
* @return
*/public static listgetobjectfields(object object)
class<?> clazz = object.getclass();
field fields = clazz.getdeclaredfields();
field superfields = clazz.getsuperclass().getdeclaredfields();
mapparammap = new hashmap();
for(field field :superfields)
for(field field :fields)
//多重繼承需要
if (clazz.getsuperclass().getsuperclass() != null)
}return fieldlist;
}/**
* @param customerno
* @return
*/return true;
}return false;
}/**
* 將字串用regex切割返回陣列最後乙個值
* @param str
* @param regex
* @return
*/public static string getstringarray(string str , string regex)
return "";
}}
三、如何使用:對需要加驗地類重寫tostring()方法即可。
logger.info("{}請求引數:{}",name, coverutils.tostring(args[0]));
四、該註解需要spring掃瞄管理後,才能使用 手機號判斷
public class smsutil toast.maketext activity,手機號碼輸入有誤!toast.length short show return false 驗證手機格式 public static boolean ismobileno string mobilenums 1...
手機號隱藏
多的不說,直接上demo string phone 12345678983 phone.replaceall d d d 1 2 利用string自帶的replaceall方法進行替換達到隱藏效果,此方法的第乙個引數為分組正規表示式 引數注釋 按照上面demo中替換後的手機號為 123 983 注意...
手機號查詢
題目 信服君接受一項任務需要製作乙個手機號碼查詢系統,輸入連續的數字後,需要顯示所有包含該連續數字的手機號。為了驗證演算法,信服君當前只需輸出手機號的個數即可。注 直接用數學的查詢方式如果 phonenum i find test string npos 會超時,只能ac80 這裡用空間替換時間效率...