11
13693261870
2024-11-11 138b959cc11dc9a73b0c766030b99ba1180d8650
src/main/java/com/se/simu/helper/StringHelper.java
对比新文件
@@ -0,0 +1,156 @@
package com.se.simu.helper;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@SuppressWarnings("ALL")
public class StringHelper {
    public final static String COMMA = ",";
    public final static String PWD_REG = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![a-z0-9]+$)(?![a-z\\W!@#$%^&*`~()\\-_+=,.?;<>]+$)(?![0-9\\W!@#$%^&*`~()\\-_+=,.?;<>]+$)[a-zA-Z0-9\\W!@#$%^&*`~()\\-_+=,.?;<>]{12,20}$";
    public static final Pattern NUMBER_PATTERN = Pattern.compile("-?\\d+(\\.\\d+)?");
    public static final SimpleDateFormat YMD_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
    public static final SimpleDateFormat YMDHMS_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    public static final SimpleDateFormat YMD2_FORMAT = new SimpleDateFormat("yyyyMMdd");
    public static final SimpleDateFormat YMDHMS2_FORMAT = new SimpleDateFormat("yyyyMMddHHmmss");
    public static boolean isInteger(String str) {
        return str != null && str.matches("[0-9]+");
    }
    public static boolean isNumeric(String str) {
        return str != null && str.matches("-?\\d+(\\.\\d+)?");
    }
    public static boolean isNumeric2(String str) {
        return str != null && NUMBER_PATTERN.matcher(str).matches();
    }
    public static Pattern datePattern = Pattern.compile("^((\\d{2}(([02468][048])|([13579][26]))[\\-\\/]((((0?[13578])|(1[02]))[\\-\\/]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/]((0?[1-9])|([1-2][0-9])))))|(\\d{2}(([02468][1235679])|([13579][01345789]))[\\-\\/]((((0?[13578])|(1[02]))[\\-\\/]((0?[1-9])|([1-2][0-9])|(3[01])))|(((0?[469])|(11))[\\-\\/]((0?[1-9])|([1-2][0-9])|(30)))|(0?2[\\-\\/]((0?[1-9])|(1[0-9])|(2[0-8]))))))(\\s(((0?[0-9])|([1-2][0-3]))\\:([0-5]?[0-9])((\\s)|(\\:([0-5]?[0-9])))))?$");
    public static Pattern sqlPattern = Pattern.compile("|and|exec|execute|insert|select|delete|update|count|drop|\\*|%|chr|mid|master|truncate|char|declare|sitename|net user|xp_cmdshell|;|or|-|\\+|,|like");
    public static Date parseDate(String str) {
        try {
            return YMD_FORMAT.parse(str);
        } catch (Exception ex) {
            return null;
        }
    }
    public static Date parseTime(String str) {
        try {
            return YMDHMS_FORMAT.parse(str);
        } catch (Exception e) {
            return null;
        }
    }
    public static boolean isDate(String strDate) {
        Matcher m = datePattern.matcher(strDate);
        return m.matches();
    }
    public static boolean isNull(String str) {
        return null == str || str.length() == 0;
    }
    public static boolean isEmpty(String str) {
        // return null == str || "".equals(str)
        return null == str || "".equals(str.trim());
    }
    public static String getLikeStr(String str) {
        return isEmpty(str) ? null : "%" + str.trim() + "%";
    }
    public static String getLikeUpperStr(String str) {
        return isEmpty(str) ? null : "%" + str.trim().toUpperCase() + "%";
    }
    public static String getRightLike(String str) {
        return isEmpty(str) ? null : str.trim() + "%";
    }
    public static String getGeomWkt(String wkt) {
        if (isEmpty(wkt)) {
            return "null";
        }
        return String.format("ST_GeomFromText('%s')", wkt);
    }
    public static String firstCharToUpperCase(String str) {
        return str.substring(0, 1).toUpperCase() + str.substring(1);
    }
    public static String firstCharToLowerCase(String str) {
        return str.substring(0, 1).toLowerCase() + str.substring(1);
    }
    public static boolean isSqlInjection(String str) {
        if (null == str) {
            return false;
        }
        Matcher m = sqlPattern.matcher(str);
        return m.matches();
    }
    public static boolean isPwdInvalid(String pwd) {
        return !Pattern.matches(PWD_REG, pwd);
    }
    public static String getGuid() {
        return UUID.randomUUID().toString();
    }
    public static long getMinuteDifference(Timestamp ts) {
        return (ts.getTime() - System.currentTimeMillis()) / 1000 / 60;
    }
    public static <T> String join(List<T> list, String join) {
        if (null == list || list.isEmpty()) {
            return "";
        }
        StringBuilder sb = new StringBuilder();
        for (T t : list) {
            if (null != t) {
                sb.append(t.toString()).append(join);
            }
        }
        if (sb.length() > 0 && sb.lastIndexOf(join) == sb.length() - join.length()) {
            sb.delete(sb.length() - join.length(), sb.length());
        }
        return sb.toString();
    }
    public static List<Integer> strToIntegers(String str) {
        if (isEmpty(str)) {
            return null;
        }
        List<Integer> list = new ArrayList<>();
        for (String s : str.split(COMMA)) {
            list.add(Integer.parseInt(s));
        }
        return list;
    }
}