想法是像使用信用卡一样掩盖字符串。可以使用这一行代码来完成。而且有效。但是我找不到这种情况下使用的正则表达式的任何直接说明。
public class Solution {
public static void main(String[] args) {
String t1 = "518798673672531762319871";
System.out.println(t1.replaceAll(".(?=.{4})", "*"));
}
}
输出为: ********************9871
正则表达式的说明:
.(?=.{4})
.
:匹配任何字符(?=
:超前条件的开始
.{4}
:断言存在4个字符)
:先行条件结束简而言之,它匹配输入中在当前位置右侧有4个字符的任何字符。
替换"*"
意味着对于inout中的每个匹配字符,将替换为单个*
字符,从而在提前查找条件不匹配时替换信用卡号中除最后4个字符之外的所有字符(因为我们不会在当前位置之前保留4个字符)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句