java - 特殊字符之前的子字符串并将其替换为相应的特殊字符

标签 java string replace substring

我正在开发短信相关模块,我需要以加密方式向消费者发送短信,例如: “OTP 已发送至号码 ********632,电子邮件 ID 为 jac********@gmail.com。” 我处理了手机号码,但我想通过以下方式加密电子邮件 ID

jacknjill356@gmail.com 
to
jac********@gmail.com

但是我找到的解决方案不是最佳的...... 我观察到 “jac”是一个字符串并且 '@gmail.com' 作为第二个字符串并且 左第三部分我用特殊字符“*”替换,并且我连接了所有三个,但这不是很好的编程实践。

有什么方法可以用正则表达式概念来做到这一点,所以我只想替换“@”符号之前的字符串。 请给我推荐最好的一个

最佳答案

这就能解决问题:

String email = "myemailadress@gmail.com";
System.out.println(email.replaceAll("(^[^@]{3}|(?!^)\\G)[^@]", "$1*"));

//Output : mye********@gmail.com

关于java - 特殊字符之前的子字符串并将其替换为相应的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48986609/

相关文章:

C++如何访问结构列表的字符串成员

regex - 使用 eclipse 查找并替换所有来交换参数

python - 如何将 0's and 1' 字符串中的字符替换为其他字符

c++ - 声明一个 String 类型的数组,其中包含带有填充的数字

java - 如何将字符转换为字节?

java - java中如何替换字符串

javax.xml.bind 无法解析

java - 尝试在工厂 org.apache.poi.xssf.usermodel.XSSFWorkbookFactory 和参数上调用 'createWorkbook' 时

java - 使用 RestFB 仅获取 Facebook 的最新帖子

java - 如何对 Android 中的所有 Activity 使用单一方法?