【java】替换字符串一些部分为星号达到保密效果(工具类整理)
2017-08-18 14:54
543 查看
项目中有一些地方需要做到保密的效果:
用户名一部分需要替换为*来达到保密效果;
银行卡号一部分需要替换为 *
身份证号一部分需要替换为 *
把这个工具类分享出来
package com.Util;
/**
* File Description : String的替换,以达到保密效果
*
*/
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})");
}
}
}
用户名一部分需要替换为*来达到保密效果;
银行卡号一部分需要替换为 *
身份证号一部分需要替换为 *
把这个工具类分享出来
package com.Util;
/**
* File Description : String的替换,以达到保密效果
*
*/
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})");
}
}
}
相关文章推荐
- JAVA工具类(12)---文本字符串工具类(数据替换,加密解密操作)
- 替换字符串中部分字符串,java
- Java IO浅谈(个人感觉例子不错,替换流,数组,文件或者大的字符串中的一些字符或者字符串)
- Java实现的文本字符串操作工具类实例【数据替换,加密解密操作】
- 替换字符串中部分字符串,java
- 【java编程】Collections工具类之复写Fill实现部分替换
- 替换字符串中部分字符串,java
- php星号替换字符串首尾以外的部分
- 整理收集的一些常用java工具类
- java中的一些string类型使用,如替换指定的字符串。
- java字符串操作整理笔记
- 正则只替换URL字符串里面的汉字部分
- java script替换字符串
- java字符串替换字符串实例
- 整理用Java实现数字转化成字符串左边自动补零方法
- java的反射技术功能十分强大,整理一些资料!!
- mysql替换字段里数据内容部分字符串
- java oop部分的一些小结1
- java oop部分的一些小结1
- Java中一些不常见的关键字整理