java8 将中文英文数字都有的一串字符首位保留其他位置加*
时间: 2023-11-27 15:49:07 浏览: 125
java中把一个数字转化为字符串
可以使用Java 8中的正则表达式和字符串操作来实现这个功能,以下是示例代码:
```java
public static String maskString(String str) {
if (str == null || str.isEmpty()) {
return str;
}
int len = str.length();
if (len == 1) {
return str;
}
char firstChar = str.charAt(0);
String mask = "*";
String regex = "[\u4e00-\u9fa5]"; // 匹配中文字符的正则表达式
if (Character.isLetterOrDigit(firstChar)) {
mask = "*";
} else if (Character.toString(firstChar).matches(regex)) {
mask = "**";
}
String maskedStr = Character.toString(firstChar) + str.substring(1).replaceAll(".", mask);
return maskedStr;
}
```
上述代码中,首先判断输入的字符串是否为空或只有一个字符,如果是则直接返回原字符串。然后获取第一个字符,判断其是否是字母或数字,如果是则用一个星号代替其他字符,否则用两个星号代替中文字符和其他字符。最后使用字符串操作将剩余字符替换为星号,返回处理后的字符串即可。
阅读全文