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;
      }

}

Java原生隐藏字符-工具类的更多相关文章

  1. 基于JAVA原生HTTP请求工具类 httphelper

    原文地址;http://lushuifa.iteye.com/blog/2313896 import java.io.BufferedReader; import java.io.BufferedWr ...

  2. 最全的Java操作Redis的工具类,使用StringRedisTemplate实现,封装了对Redis五种基本类型的各种操作!

    转载自:https://github.com/whvcse/RedisUtil 代码 ProtoStuffSerializerUtil.java import java.io.ByteArrayInp ...

  3. java中常用的工具类(一)

    我们java程序员在开发项目的是常常会用到一些工具类.今天我汇总了一下java中常用的工具方法.大家可以在项目中使用.可以收藏!加入IT江湖官方群:383126909 我们一起成长 一.String工 ...

  4. JAVA自动生成正则表达式工具类

    经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...

  5. Java 后台验证的工具类

    Java 后台验证的工具类 public class ValidationUtil {         //手机号     public static String mobile = "^( ...

  6. Java日期时间实用工具类

    Java日期时间实用工具类 1.Date (java.util.Date)    Date();        以当前时间构造一个Date对象    Date(long);        构造函数   ...

  7. Rhino+envjs-1.2.js 在java运行网站js 工具类

    java爬虫遇到个页面加密的东西,找了些资料学习学习 做了个java运行js的工具类,希望对大家有用,其中用到client(获取js)可以自行换成自己的client.主要是用了 Rhino就是Java ...

  8. Java学习-041-颜色工具类(RGB,HEX)

    在日常的网页开发中,经常需要进行颜色数值获取.转换,例如获取红色,获取蓝色,获取绿色,RGB转十六进制颜色,十六进制颜色转RGB等,因而在学习过程中,写了一个小工具类,仅供各位小主参考! 多不闲言,直 ...

  9. JAVA中封装JSONUtils工具类及使用

    在JAVA中用json-lib-2.3-jdk15.jar包中提供了JSONObject和JSONArray基类,用于JSON的序列化和反序列化的操作.但是我们更习惯将其进一步封装,达到更好的重用. ...

随机推荐

  1. C# 密封(2)

    上一章节说到 sealed  作用于类,那么sealed 作用到方法和成员上面该如何呢. 在C# 中 Sealed作用于方法必须是重写之后的方法.也就是override+sealed.在之后别的类在继 ...

  2. loj #2051. 「HNOI2016」序列

    #2051. 「HNOI2016」序列 题目描述 给定长度为 n nn 的序列:a1,a2,⋯,an a_1, a_2, \cdots , a_na​1​​,a​2​​,⋯,a​n​​,记为 a[1: ...

  3. 如何理解<base href="<%=basePath%>" ---转载

    原文链接http://316325524.blog.163.com/blog/static/6652052320111118111620897/ "base href " 今天在写 ...

  4. 牛客挑战赛30-T3 小G砍树

    link 题目大意: n个节点的带标号无根树.每次选择一个度数为1的节点并将它从树上移除.问总共有多少种不同的方式能将这棵树删到只剩 1 个点.两种方式不同当且仅当至少有一步被删除的节点不同. 题解: ...

  5. 如果你是后台开发者,InnoDB的小秘密,你应该知道

    InnoDB简述 InnoDB由Innobase Oy公司所开发,2006年五月时由甲骨文公司并购.InnoDB支持了ACID兼容的事务(Transaction)功能,类似于PostgreSQL. 当 ...

  6. 条目四《用empty来代替检查size()是否为0》

    条目四<用empty来代替检查size()是否为0> 首先先说结论: empty()实现为内联函数.(众所周知, 优秀的内联函数的效率比一般函数是高的) 在stl标准库中,empty()对 ...

  7. eazyui 或bootstrap table表格里插入图片,点击查看大图

    columns: [ {field: 'state',checkbox: true,align: 'center',valign: 'middle'}, {field: 'contacts',sort ...

  8. 使用TortoiseSVN新建及合并分支图文教程

    打开trunks目录,在trunks目录下新建两个文本文件A.java,B.java:   打开A.java输入以下内容: B.java文件可以随机输入些,本例中主要用于观察后续是否变化. 两个文件编 ...

  9. 扩展jQuery高亮网页中的文本选中

    <script type="text/javascript"> //1.扩展jQuery $.fn.selectRange = function (start, end ...

  10. 2A - Stone

    任意一堆移动过后的石子都是整数x的倍数, 那么石子总数显然也应该是x的倍数, 换句话说,x必为石子数总和的一个质因子. 题目要求移动次数尽量小,那么x也应该尽量小. 所以选择石子数总和的最小质因子. ...