【需求】
将字符串后N位用0覆盖,如果字符串带小数点,则将小数点前的部分按此处理,小数点后丢弃。
【代码】
package com.hy.lab; public class CoverWithZero { public static String encrypt(String original,int n){ String[] arr=original.split("[.]"); String part1=arr[0]; char[] cs=part1.toCharArray(); int length=cs.length; int index=0; for(int i=0;i<n;i++){ index= length-1-i; if(index>=0){ cs[index]='0'; }else{ break; } } return String.valueOf(cs); } public static void main(String[] args){ String[] arr={"12345","123456","12453456.78","dsa23321321321","dsadsa","20220318","202203181616",}; for(String str:arr){ String enStr=CoverWithZero.encrypt(str,6); String msg=String.format("原文=%s,遮盖后=%s",str,enStr); System.out.println(msg); } } }
【输出】
原文=12345,遮盖后=00000 原文=123456,遮盖后=000000 原文=12453456.78,遮盖后=12000000 原文=dsa23321321321,遮盖后=dsa23321000000 原文=dsadsa,遮盖后=000000 原文=20220318,遮盖后=20000000 原文=202203181616,遮盖后=202203000000
END