Java原生隐藏字符-工具类

package com.seesun2012.common.util;

/**

  • 隐藏字符-工具类
  • @author seesun2012@163.com

*/
public class HiddenChartUtil {

/**
* 加密银行卡号,返回值如:6228 48** **** **8 888
*
* @param str 原始字符串
* @param startIndex 开始位置(显示)
* @param endIndex 结束位置(显示)
* @param n 每n个字符隔开
* @param encryptionStr 指定加密字符,如"
" --米字符号
* @param repStr 添加分隔的符号,如:“ ” -- 空格
* @return
*/
public static String replaceCardId(String str, Integer startIndex, Integer endIndex, Integer n, String encryptionStr, String repStr){
return spaceReplace(hiddenStr(str, startIndex, endIndex, encryptionStr), n, repStr);
}

/**
* 每间隔n个字符插入特定字符,默认如:6228 4888 8888 8888 888 ...
*
* @param str 原始字符
* @param n 每n个字符隔开
* @param repStr 添加分隔的符号,如:“ ” -- 空格
* @return
*/
public static String spaceReplace(String str, Integer n, String repStr){
if (n <= 0){
n = 4;
}
if (null == repStr){
repStr = "";
}
String newStr = "";
char[] bankArray = str.toCharArray();
for(int i=0;i<bankArray.length;i++){
if(i%n==0 && i>0){
newStr += repStr;
}
newStr += bankArray[i];
}
return newStr;
}

/**
* 隐藏指定间隔字符,默认如:622848************8888
*
* @param str 原始字符串
* @param startIndex 开始位置
* @param endIndex 结束位置
* @param encryptionStr 指定加密字符
* @return
/
public static String hiddenStr(String str, Integer startIndex, Integer endIndex, String encryptionStr){
if (str.length()<=1) {
return str;
}
if (null == encryptionStr){
encryptionStr = "
";
}
String xxStr = "";
String lenStr = str.trim().substring(startIndex, str.length()-endIndex);
for (int i = 0, len = lenStr.length(); i < len; i++) {
xxStr += encryptionStr;
}
xxStr = str.replaceFirst(lenStr, xxStr);
return xxStr;
}

}

posted @ 2018-06-22 17:44  seesun2012  阅读(1457)  评论(0)    收藏  举报