这是一个帐号 77787845456464645656547877
accountNumber1.replaceAll( "(desc>||desc\s*[:]{2}\s*?|)(\d(?=\d{4}))", "$1XXXXXXXXXX$2") 这不是工作,我尝试了不同的方法没有结果。请检查,谢谢
这是一个帐号 77787845456464645656547877
accountNumber1.replaceAll( "(desc>||desc\s*[:]{2}\s*?|)(\d(?=\d{4}))", "$1XXXXXXXXXX$2") 这不是工作,我尝试了不同的方法没有结果。请检查,谢谢
没有正则表达式的方法:
char[] cs = accountNum.toCharArray();
Arrays.fill(cs, 0, cs.length-4, '*');
String masked = new String(cs);
一种方法是用 替换每个数字*
,前提是它后面跟着四个或更多其他数字。用正向查找做最后一部分,比如
myString.replaceAll("\\d(?=\\d{4})", "*");
它返回myString
除最后四位以外的每个数字都替换为*
.