Scala:如何屏蔽字符串的前N个字符

j3d*_*j3d 5 scala

给定一个代表信用卡号的字符串......

val creditCardNo = "1111222233334444"
Run Code Online (Sandbox Code Playgroud)

...如何用前缀12个字符*

val maskedCreditCardNo = "************4444"
Run Code Online (Sandbox Code Playgroud)

DNA*_*DNA 14

只需使用dropsubstring在原始号码上,并添加正确的"*"号码:

"*" * 12 + (creditCardNo drop 12)
Run Code Online (Sandbox Code Playgroud)

  • 惯用法,`ns.patch(0,"*"*12,12)`. (10认同)

Ser*_*tin 6

替换所有数字符号,除非剩下4个字符:

creditCardNo.replaceAll("\\d(?=\\d{4})", "*")
Run Code Online (Sandbox Code Playgroud)