使用註解對手機號及卡號加驗工具類

2021-08-21 23:31:45 字數 3293 閱讀 6321

一、定義加驗地註解類

/**

* @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 這裡用空間替換時間效率...