通用脱敏工具类

public class DesensitizationUtil {

    private static final int SIZE = 6;
private static final String SYMBOL = "*"; /**
* 通用脱敏方法
* @param value
* @return
*/
public static String commonDisplay(String value) {
if (null == value || "".equals(value)) {
return value;
}
int len = value.length();
int pamaone = len / 2;
int pamatwo = pamaone - 1;
int pamathree = len % 2;
StringBuilder stringBuilder = new StringBuilder();
if (len <= 2) {
if (pamathree == 1) {
return SYMBOL;
}
stringBuilder.append(SYMBOL);
stringBuilder.append(value.charAt(len - 1));
} else {
if (pamatwo <= 0) {
stringBuilder.append(value.substring(0, 1));
stringBuilder.append(SYMBOL);
stringBuilder.append(value.substring(len - 1, len)); } else if (pamatwo >= SIZE / 2 && SIZE + 1 != len) {
int pamafive = (len - SIZE) / 2;
stringBuilder.append(value.substring(0, pamafive));
for (int i = 0; i < SIZE; i++) {
stringBuilder.append(SYMBOL);
}
if ((pamathree == 0 && SIZE / 2 == 0) || (pamathree != 0 && SIZE % 2 != 0)) {
stringBuilder.append(value.substring(len - pamafive, len));
} else {
stringBuilder.append(value.substring(len - (pamafive + 1), len));
}
} else {
int pamafour = len - 2;
stringBuilder.append(value.substring(0, 1));
for (int i = 0; i < pamafour; i++) {
stringBuilder.append(SYMBOL);
}
stringBuilder.append(value.substring(len - 1, len));
}
}
return stringBuilder.toString();
} }

判断URL

public class ISUrlUtil {

    /**
* 验证是否是URL
* @param url
* @return
*/
public static boolean verifyUrl(String url){ // URL验证规则
// String regEx ="[A-Za-z]+://[A-Za-z0-9-_]+\\\\.[A-Za-z0-9-_%&\\?\\/.=]+";
String regEx = "^([hH][tT]{2}[pP]:/*|[hH][tT]{2}[pP][sS]:/*|[fF][tT][pP]:/*)(([A-Za-z0-9-~]+).)+([A-Za-z0-9-~\\/])+(\\?{0,1}(([A-Za-z0-9-~]+\\={0,1})([A-Za-z0-9-~]*)\\&{0,1})*)$";
// 编译正则表达式
Pattern pattern = Pattern.compile(regEx);
// 忽略大小写的写法
// Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(url);
// 字符串是否与正则表达式相匹配
boolean rs = matcher.matches();
return rs; } }

代码皆为网上搜集而来,侵权联删。。。

最新文章

  1. iOS第三方地图-百度地图定位的封装
  2. SQL技巧之分类汇总
  3. Top命令查看内存
  4. Qt webKit可以做什么(四)--实现本地QObject和JavaScript交互
  5. Bitbucket导入项目
  6. 【学习OpenCV】——2.4对图像进行平滑处理
  7. 对于JavaScript中this关键字的理解
  8. Spring 3.x 读书笔记
  9. Vuejs实例-使用vue-cli创建项目
  10. shell 环境变量的相关配置文件和配置方法
  11. 通过TensorFlow训练神经网络模型
  12. 【春华秋实】.NET Framework与.NET Core
  13. Twisted网络库编程实例
  14. echarts地图使用
  15. IAM:亚马逊访问权限控制
  16. PHP的几种输出方式
  17. Android 将拼接好并加上边框的图片保存到内存卡中
  18. Firefox mobile (android) and orientationchange
  19. Struts html(标签)
  20. 在Ubuntu上开启MongoDB的IP Security

热门文章

  1. spring学习日志四
  2. WPF日积月累之文件监测与DataGrid指定Row的颜色
  3. 【C#】 堆和栈
  4. 服务器程序动态加载自定义jar包的过程
  5. python实现两台不同主机之间进行通信(客户端和服务端)——Socket
  6. netty系列之:自建客户端和HTTP服务器交互
  7. linux centos7 df命令
  8. 如何在RHEL7或CentOS 7系统下修改网卡名称(亲测有效~!)
  9. 剑指 Offer 14- II. 剪绳子 II
  10. K8S——Pod