gpt4 book ai didi

java - 带括号和空格的掩码电话号码 Java

转载 作者:行者123 更新时间:2023-12-01 23:08:07 25 4
gpt4 key购买 nike

我有一个电话号码屏蔽的方法。我需要将除最后 4 位之外的所有数字替换为星号。输入示例为:+91 (333) 444-5678+1(333) 456-7890 。输出应如下所示:

enter image description here

但我的输出实际上是这样的:

enter image description here

这是我的代码:

public static String maskPhoneNumber(String inputPhoneNum){
return inputPhoneNum.replaceAll("\\(", "-")
.replaceAll("\\)", "-")
.replaceAll(" ", "-")
.replaceAll("\\d(?=(?:\\D*\\d){4})", "*");
}

我的方法适用于国家/地区代码中不同位数的数字,但如果国家/地区代码附近不是数字之间有空格,而是括号(后面的三元组),则该方法会中断。如果您能提供一些关于如何改进我的方法的提示,我将不胜感激!

最佳答案

目前,您可以将每个单独的空格 () 替换为 -。您需要将所有连续出现的内容替换为 1 个连字符。

使用

public static String maskPhoneNumber(String inputPhoneNum){
return inputPhoneNum.replaceAll("[()\\s]+", "-")
.replaceAll("\\d(?=(?:\\D*\\d){4})", "*");
}

参见 this Java demo

+91 (333) 444-5678 变为 +**-***-***-5678+1(333) 456-7890 变为 +*-***-***-7890

[()\s]+ 模式匹配 1 个或多个 (+) 连续 (, ) 或空白字符。请参阅 the "normalization" step regex demofinal step demo

关于java - 带括号和空格的掩码电话号码 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47454768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com