java 实用工具类

149 阅读1分钟

JDK 自带

MessageDigest md5 加密

// 创建md5加密对象
MessageDigest md5 = MessageDigest.getInstance("md5");
Base64.Encoder encoder = Base64.getEncoder();
//转换成字符串
new String(encoder.encode(md5.digest(passwd.getBytes())), StandardCharsets.ISO_8859_1);

Base64 加密

@Test
void practise() {
    // 创建对象
    Base64.Encoder encoder = Base64.getEncoder();
    // 把20加密
    String base64UserIDEncoded = encoder.encodeToString(String.valueOf(20).getBytes());
    // 把当前时间加密
    String currentStringBase64Encoded = encoder.encodeToString(String.valueOf(System.currentTimeMillis()).getBytes());
    // 进行拼接
    String s = currentStringBase64Encoded + currentStringBase64Encoded.substring(4, 8) + base64UserIDEncoded;
    // 拼接好转数组
    byte[] bytes = s.getBytes();
    // 将该字符串的长度转成数组
    byte[] bytes1 = new byte[s.length()];
    // 元素进行加减,数据更换 ,这里直接反转也可以,这里使用的是计算
    for (int i = 0; i < bytes.length; i++) {
        bytes1[i] = bytes[bytes.length - i - 1];
    }
    // 把=号用#号替换
    String s1 = new String(bytes1).replaceAll("=","#");
}

Base64 解密

@Test
void parent() {
    // 解密前先判断会不会是空的
    if(StringUtils.isBlank("#AjMwczM##ANyIDMwQDMwczM3YTM")){
        return null;
    }
    // 反转字符串
    String toString = new StringBuffer("#AjMwczM##ANyIDMwQDMwczM3YTM").reverse().toString();
    // 把 #号替换为=号
    String replaceAll = toString.replaceAll("#", "=");
    // 让==这个索引 + 6,获取索引,也就是最后四位
    int i = replaceAll.indexOf("==") + 6;
    // 截取刚刚得到的索引
    String substring = replaceAll.substring(i);
    // 解密
    String s = new String(Base64.getDecoder().decode(substring.getBytes()));
}

URL 解码

String decode = URLDecoder.decode("%23ATM1czM%23%23QMwgjNzgDO1czM3YTM", StandardCharsets.UTF_8);

JSON序列化

ObjectMapper 序列化

依赖

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
</dependency>
// 创建对象
private static final ObjectMapper MAPPER = new ObjectMapper();
// 转JSON
String json = MAPPER.writeValueAsString(new User());
// 反序列化
User user1 = MAPPER.readValue(json, User.class);

commons-lang3

String工具类

判断是否为空,空格也为空

//判断是否为空,false
StringUtils.isBlank("names");

判断字符串是否非空

StringUtils.isNotBlank(""); //是true

时间格式化

@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")

正则

匹配手机号

String phone = "1((3[\\d])|(4[5-7|9])|(5[0-3|5-9])|(6[5-7])|(7[0-8])|(8[\\d])|(9[1|8|9]))\\d{8}";

"^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$" // 手机号

匹配邮箱

String s = "([0-9]|[a-z]|[A-Z])+@([0-9]|[a-z]|[A-Z])+\.([0-9]|[a-z]|[A-Z])+";

匹配身份证

String idCard = "^[1-9]\d{5}(18|19|20)\d{2}(0\d|10|11|12)(0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]";

集合

map 转 对象 import org.springframework.cglib.beans.BeanMap;

// 创建对象
IomBaseDataNe ne = new IomBaseDataNe(); 
// 交给bean map
BeanMap beanMap = BeanMap.create(ne);
// 开始复制
beanMap.putAll(map);