通用脱敏工具类和判断URL
2024-08-28 23:22:45
通用脱敏工具类
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;
}
}
代码皆为网上搜集而来,侵权联删。。。
最新文章
- iOS第三方地图-百度地图定位的封装
- SQL技巧之分类汇总
- Top命令查看内存
- Qt webKit可以做什么(四)--实现本地QObject和JavaScript交互
- Bitbucket导入项目
- 【学习OpenCV】——2.4对图像进行平滑处理
- 对于JavaScript中this关键字的理解
- Spring 3.x 读书笔记
- Vuejs实例-使用vue-cli创建项目
- shell 环境变量的相关配置文件和配置方法
- 通过TensorFlow训练神经网络模型
- 【春华秋实】.NET Framework与.NET Core
- Twisted网络库编程实例
- echarts地图使用
- IAM:亚马逊访问权限控制
- PHP的几种输出方式
- Android 将拼接好并加上边框的图片保存到内存卡中
- Firefox mobile (android) and orientationchange
- Struts html(标签)
- 在Ubuntu上开启MongoDB的IP Security