2024年5月28日发(作者:)
对昨天写的进行了优化;
测试报告:
环境:Win7
工具:STS、JDK1.6
用例:将长度为23的StringArray循环执行1千万次。
结果:耗时41873ms,平均执行一条0.0001820565ms,未发现异常。
结论:测试通过
代码如下:
/**
* 数据敏感信息屏蔽方法(log使用)
* @author Hua.wang Nero Azan
* @date 2014/09/08
* @version 1.1
*/
public class DataConcealUtil {
public static int SIZE =6;
public static String SYMBOL = "*";
public static String toConceal(String str) {
if(null == str || "".equals(str))
return str;
int l = str.length();
int a = l/2;
int b = a-1;
int c = l%2;
StringBuffer sb = new StringBuffer(l);
if(l <= 2) {
if(c==1)
return SYMBOL;
sb.append(SYMBOL);
sb.append(strAt(l-1));
}else {
if(b<=0) {
send(sbstring(0, 1));
pend(SYMBOL);
sb.append(ststring(l-1, l));
}else if(b>=SIZE/2 && SIZE+1!=l){
int e = (l-SIZE)/2;
sb.append(ststring(0, e));
for(int i = 0;i sb.append(SYMBOL); if((c==0&&SIZE%2==0)||(c!=0&&SIZE%2!=0)) sb.append(str.substring(l-e, l)); else pend(str.substring(l-(e+1), l)); }else { int d = l -2 ; send(sbstring(0, 1)); for(int i = 0;i send(SYMBOL); sb.append(str.substring(l-1, l)); } } return String(); } public static void main(String[] args) { String[] strs = {null, "", "1", "12", "123", "1234", "12345", "123456", "1234567", "12345678", "123456789", "1234567890", "12345678901" ,"你","你好","你好吗","你们好吗","你们都好吗","你们都 很好吗","你们都是很好吗","你们会都是很好吗","你们真的都是很好吗","你们真的 都是很好吗?"}; long begin = System.currentTimeMillis(); for(int a =0;a<10000000;a++) { for(String str: strs ){ if(a==0){ System.out.println(str); System.out.println(toConceal(str)); Syste.println("------------------------------"); }else { toConceal(str); } } } long end = SysterentTimeMillis(); Syste.println("耗时(ms):"+(end-begin)); //41873ms / (10000000 * 23) ≈ 1.82 ms } } 控制台打印结果: null null ------------------------------ ------------------------------ 1 * ------------------------------ 12 *2 ------------------------------ 123 1*3 ------------------------------ 1234 1**4 ------------------------------ 12345 1***5 ------------------------------ 123456 1****6 ------------------------------ 1234567 1*****7 ------------------------------ 12345678 1******8 ------------------------------ 123456789 1******89 ------------------------------ 1234567890 12******90 ------------------------------ 12345678901 12******901 ------------------------------ 你 * ------------------------------ 你好 *好 ------------------------------ 你好吗 你*吗 ------------------------------ 你们好吗 你**吗 ------------------------------ 你们都好吗 你***吗 ------------------------------ 你们都很好吗 你****吗 ------------------------------ 你们都是很好吗 你*****吗 ------------------------------ 你们会都是很好吗 你******吗 ------------------------------ 你们真的都是很好吗 你******好吗 ------------------------------ 你们真的都是很好吗? 你们******吗? ------------------------------ 耗时(ms):41873


发布评论