安卓电话号码实现中间4位变成*号

2018-05-08  本文已影响0人  yasuion

public class StringReplaceUtil {

/**

    * 根据用户名的不同长度,来进行替换 ,达到保密效果

    *

    * @param userName 用户名

    * @return 替换后的用户名

    */

    public static String userNameReplaceWithStar(String userName) {

String userNameAfterReplaced ="";

if (userName ==null){

userName ="";

}

int nameLength = userName.length();

if (nameLength <=1) {

userNameAfterReplaced ="*";

}else if (nameLength ==2) {

userNameAfterReplaced =replaceAction(userName,"(?<=\\d{0})\\d(?=\\d{1})");

}else if (nameLength >=3 && nameLength <=6) {

userNameAfterReplaced =replaceAction(userName,"(?<=\\d{1})\\d(?=\\d{1})");

}else if (nameLength ==7) {

userNameAfterReplaced =replaceAction(userName,"(?<=\\d{1})\\d(?=\\d{2})");

}else if (nameLength ==8) {

userNameAfterReplaced =replaceAction(userName,"(?<=\\d{2})\\d(?=\\d{2})");

}else if (nameLength ==9) {

userNameAfterReplaced =replaceAction(userName,"(?<=\\d{2})\\d(?=\\d{3})");

}else if (nameLength ==10) {

userNameAfterReplaced =replaceAction(userName,"(?<=\\d{3})\\d(?=\\d{3})");

}else if (nameLength >=11) {

userNameAfterReplaced =replaceAction(userName,"(?<=\\d{3})\\d(?=\\d{4})");

}

return userNameAfterReplaced;

}

/**

    * 实际替换动作

    *

    * @param username username

    * @param regular  正则

    * @return  * 替换成自己想要的数字

    */

    private static String replaceAction(String username, String regular) {

return username.replaceAll(regular,"*");//这里的*号可以替换成自己想要的符号

}

/**

    * 身份证号替换,保留前四位和后四位

    *

    * 如果身份证号为空 或者 null ,返回null ;否则,返回替换后的字符串;

    *

    * @param idCard 身份证号

    * @return

    */

    public static String idCardReplaceWithStar(String idCard) {

if (idCard.isEmpty() || idCard ==null) {

return null;

}else {

return replaceAction(idCard,"(?<=\\d{4})\\d(?=\\d{4})");

}

}

/**

    * 银行卡替换,保留后四位

    *

    * 如果银行卡号为空 或者 null ,返回null ;否则,返回替换后的字符串;

    *

    * @param bankCard 银行卡号

    * @return

    */

    public static String bankCardReplaceWithStar(String bankCard) {

if (bankCard.isEmpty() || bankCard ==null) {

return null;

}else {

return replaceAction(bankCard,"(?<=\\d{0})\\d(?=\\d{4})");

}

}

}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

使用:

// 修改电话号码 将中间四位改成*号

TextView phone = (TextView) bindViewById(R.id.pay_now_phone);

String str="13595616253";

String s = StringReplaceUtil.userNameReplaceWithStar(str);

phone.setText(s);

效果:

上一篇 下一篇

猜你喜欢

热点阅读