zoukankan      html  css  js  c++  java
  • 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;
    }
    

    }

  • 相关阅读:
    【C/C++】Dijkstra算法的简洁实现
    【数学建模】图论方法的数学模型
    【数学建模】模糊数学模型详解
    【数学建模】基于问题的线性规划和混合整数规划求解
    【机器学习】非常全的机器学习资源汇总
    【数据结构】数据结构中的各种树详解
    【数据结构】八大排序算法
    【数据结构】七大查找算法
    【数学建模】MATLAB语法
    【论文阅读】Sequence to Sequence Learning with Neural Network
  • 原文地址:https://www.cnblogs.com/seesun2012/p/9214630.html
Copyright © 2011-2022 走看看