Java地址脱敏只保留前2两个和后三个其他用*代替
时间: 2024-02-03 19:15:08 浏览: 237
可以使用 String 类的 substring() 方法和 repeat() 方法来实现:
```
public static String desensitizeAddress(String address) {
if (address == null || address.length() < 5) {
return address;
}
int len = address.length();
String prefix = address.substring(0, 2);
String suffix = address.substring(len - 3);
String mask = "*".repeat(len - 5);
return prefix + mask + suffix;
}
```
这个方法会先判断地址是否为空或长度小于 5,如果是则直接返回原始地址。否则,它会取出地址的前两个字符和后三个字符,并将中间的字符全部替换为星号。最后,它会将前缀、星号和后缀拼接起来并返回。
相关问题
写一个将此变量var returnData = [{"value1":"34167253667890473"}];中value1的值前四位和后三位其余位为*号的脱敏js代码
以下是将变量var returnData中value1的值前四位和后三位其余位为*号的脱敏js代码:
```
var returnData = [{"value1":"34167253667890473"}];
returnData[0].value1 = returnData[0].value1.replace(/^(.{4})(.*)(.{3})$/, function(match, p1, p2, p3) {
return p1 + p2.replace(/./g, '*') + p3;
});
```
这段代码将value1的值变为"3416*********473"。
java对手机号、身份证号进行脱敏,具体脱敏规则: 手机号:保留前三后三, 比如15085375241置换为150*****241; 身份证号:保留前六后三, 适用于15位和18位身份证号。
对于手机号的脱敏,Java中可以通过正则表达式和字符串替换来实现。具体的规则是保留前三位和后三位,将中间的数字用星号代替。可以使用以下代码实现:
```
String phone = "15085375241";
phone = phone.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
System.out.println(phone);
```
输出结果为:150*****241
对于身份证号的脱敏,同样可以使用正则表达式和字符串替换来实现。具体规则是保留前六位和后三位,将中间的数字用星号代替。可以使用以下代码实现:
```
String idCard = "510105199001011234";
idCard = idCard.replaceAll("(\\d{6})\\d{8}(\\w{3})", "$1********$2");
System.out.println(idCard);
```
输出结果为:510105********123
阅读全文