您的位置:首页 > 其它

String的一部分替换为星号“*”

2016-03-07 18:07 309 查看
项目中有一些地方需要做到保密的效果:

用户名一部分需要替换为*来达到保密效果;

银行卡号一部分需要替换为 *

身份证号一部分需要替换为 *

把这个工具类分享出来

package com.Util;

/**
* File Description  : String的替换,以达到保密效果
*
* @author : zhanggeng
* @version : v1.0
*          **************修订历史*************
* @email : zhanggengdyx@gmail.com
* @date : 16/2/16 11:38
*/
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})");
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string