Java 手机号中间四位改为星号
时间: 2023-07-28 18:00:51 浏览: 264
可以使用正则表达式和 String 类的 replaceAll 方法来实现手机号中间四位改为星号的需求,示例代码如下:
```java
String phoneNumber = "13812345678";
String regex = "(\\d{3})\\d{4}(\\d{4})";
String replacement = "$1****$2";
String maskedPhoneNumber = phoneNumber.replaceAll(regex, replacement);
System.out.println(maskedPhoneNumber); // 输出:138****5678
```
其中,正则表达式 `(\\d{3})\\d{4}(\\d{4})` 匹配了手机号中间的四位数字,使用 `$1****$2` 作为替换字符串,将第一个和第二个匹配组之间的数字替换为四个星号。最终输出结果为 `138****5678`。
相关问题
java中随机从键盘中输入一个手机号,截取手机号中间四位,用“****”代替,显示样例如:187****2868
### 隐藏手机号中间四位数字
为了实现隐藏手机号码中间四位的功能,可以采用字符串处理的方式,在给定的电话号码上应用特定模式替换。下面是一个简单的例子展示如何完成这一功能:
```java
public class HidePhoneNumber {
public static String hideMiddleDigits(String phoneNumber) {
if (phoneNumber == null || !phoneNumber.matches("\\d{11}")) {
throw new IllegalArgumentException("Invalid phone number");
}
// 使用正则表达式匹配并替换中间四位数为星号
return phoneNumber.replaceAll("(\\d{3})\\d{4}(\\d{4})", "$1****$2");
}
public static void main(String[] args) {
System.out.println(hideMiddleDigits("18700002868")); // 输出: 187****2868
}
}
```
此代码片段定义了一个名为 `hideMiddleDigits` 的函数,它接收一个参数作为输入——即待处理的电话号码,并返回经过修改后的版本。这里假设传入的是中国大陆标准格式下的移动电话号码(长度固定为11位)。对于不符合条件的情况,则抛出异常提示错误。
此外,还提供了一个测试用例用于验证逻辑是否正确执行。当运行这段程序时,将会看到预期的结果被打印出来[^1]。
阅读全文