java,脱敏方法,保留护照号第1位字母和最后3位数字,其余用*替换; java,脱敏方法保留军人证号数字部分的最后3位,其余用*替换
时间: 2024-11-03 11:14:34 浏览: 37
php实现替换手机号中间数字为*号及隐藏IP最后几位的方法
在Java中,可以创建一个简单的字符串脱敏方法来满足这两个需求。我们可以使用`StringBuilder`和正则表达式来实现这个功能。这里分别给出两个示例:
1. **护照号脱敏**:
```java
public String desensitizePassportNumber(String passportNumber) {
if (passportNumber.length() < 4) return passportNumber; // 如果不足四位,不做处理
StringBuilder sb = new StringBuilder(passportNumber);
int start = 0;
int end = sb.length() - 3;
// 保留首字母和最后三位数字
sb.setCharAt(start, '*');
sb.setChars(start + 1, start + 2, '*');
sb.setCharAt(end, '*');
sb.setChars(end - 2, end, Integer.toString(sb.charAt(end - 1)));
return sb.toString();
}
```
2. **军人证号脱敏**:
```java
public String desensitizeMilitaryID(String militaryID) {
if (militaryID.length() < 7) return militaryID; // 如果不足七位,不做处理
StringBuilder sb = new StringBuilder(militaryID);
int lastThreeIndex = sb.length() - 3;
// 保留第一个数字和最后三位数字
sb.setCharAt(0, sb.charAt(0));
sb.setCharAt(lastThreeIndex, sb.charAt(lastThreeIndex));
sb.setChars(lastThreeIndex - 2, lastThreeIndex, '*');
return sb.toString();
}
```
**
阅读全文