java自定义工具类

import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.security.MessageDigest;
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;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.codec.binary.Base64;

/**
 * 工具类
 *
 */
public class Utils {
    static String regEx = "[\u4e00-\u9fa5]";
    static Pattern pat = Pattern.compile(regEx);


    /**
     * 获取系统当前时间
     * @return  时间字符串
     */
    public static String getDateTime(){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sdf.format(new Date());
    }
    /**
     * 获取系统当前时间
     * @return  时间字符串
     */
    public static String getDateTimeNum(){
        SimpleDateFormat sdf=new SimpleDateFormat("yyyyMMddHHmmss");
        return sdf.format(new Date());
    }
    /**
     * 获取UUID
     * @return
     */
    public static String getUUid(){
        return UUID.randomUUID().toString();
    }
    /**
     * 重命名图片
     * @param name
     * @return
     */
    public static String getImageName(String name){
        StringBuffer str=new StringBuffer();
        str.append(getDateTimeNum());
        str.append("-");
        str.append(getUUid().substring(1, 4));
        str.append("-");
        if (isContainsChinese(name)) {
            str.append(getUUid().substring(0, 8));
            str.append(".");
            str.append(name.split("\\.")[1]);
        }else{
            str.append(name);
        }
        return str.toString().trim();
    }
    /**
     * 判断字符串中是否存在 
     * @param str
     * @return
     */
    public static boolean isContainsChinese(String str)
    {
        Matcher matcher = pat.matcher(str);
        boolean flg = false;
        if (matcher.find())    {
        flg = true;
        }
        return flg;
    }

    /**
     * 获取结束时间
     * @Desc {}
     * @param dateStr
     * @return
     */
    public static String getMidnightDate(String dateStr) {
        if(dateStr == null || "".equals(dateStr)){
            return null;
        }
        return dateStr+" 23:59:59";
    }

    /**
     * 加盐加密
     * @param params
     * @param salt
     * @return
     */
    public static String md5Salt(String params, String salt){
        String str = MD5(params);
        String result = MD5(str+salt);
        return result;
    }

    /**
     * md5加密
     * @param s
     * @return
     */
    public final static String MD5(String s) {
        char hexDigits[] = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
        try {
            byte[] btInput = s.getBytes("UTF-8");
            // 获得MD5摘要算法的 MessageDigest 对象
            MessageDigest mdInst = MessageDigest.getInstance("MD5");
            // 使用指定的字节更新摘要
            mdInst.update(btInput);
            // 获得密文
            byte[] md = mdInst.digest();
            // 把密文转换成十六进制的字符串形式
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                str[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(str);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }

    /**
     * base64加密
     * @param str
     * @return
     */
    public static String base64Encode(String str) {
        byte[] b = null;
        String s = null;
        try {
            b = str.getBytes("utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        if (b != null) {
            s = Base64.encodeBase64String(b);
        }
        return s;
    }

    /**
     * base64解密
     * @param str
     * @return
     */
    public static String base64Decode(String str) {
        String s = null;
        byte[] b = Base64.decodeBase64(str);
        try {
            s = new String(b, "utf-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return s;
    }

    /**
     * 数据导出excel时,根据不同的客户端请求浏览器转换文件名,以防止出现乱码
     * @param req
     * @param fileName
     * @return String
     * @throws UnsupportedEncodingException
     */
    public static String transferFileName(HttpServletRequest req, String fileName) throws UnsupportedEncodingException {
        String exportFileName = "";
        if (isFirefoxBrowse(req)) {//火狐浏览器 
            exportFileName = new String(fileName.getBytes(), "ISO8859-1");
        } else {
            exportFileName = URLEncoder.encode(fileName, "UTF8");//其他浏览器 
        }
        return exportFileName;
    }

    /**
     * 判断客户端请求是否是火狐浏览器
     * @param req
     * @return boolean
     */
    public static boolean isFirefoxBrowse(HttpServletRequest req) {
        String userAgent = req.getHeader("USER-AGENT");
        if (userAgent.indexOf("Firefox") != -1) {//火狐浏览器 
            return true;
        } else {//其他浏览器
            return false;
        }
    }
    /**
     * 根据指定大小切割list
     * @param resList
     * @param count
     * @return
     */
    public static <T> List<List<T>> splitList(List<T> resList, int count) {
        if (resList == null || count < 1)
            return null;
        List<List<T>> ret = new ArrayList<List<T>>();
        int size = resList.size();
        if (size <= count) { // 数据量不足count指定的大小
            ret.add(resList);
        } else {
            int pre = size / count;
            int last = size % count;
            // 前面pre个集合,每个大小都是count个元素
            for (int i = 0; i < pre; i++) {
                List<T> itemList = new ArrayList<T>();
                for (int j = 0; j < count; j++) {
                    itemList.add(resList.get(i * count + j));
                }
                ret.add(itemList);
            }
            // last的进行处理
            if (last > 0) {
                List<T> itemList = new ArrayList<T>();
                for (int i = 0; i < last; i++) {
                    itemList.add(resList.get(pre * count + i));
                }
                ret.add(itemList);
            }
        }
        return ret;

    }

    /**
     * 清空文件夹
     * @param file
     */
    public static void deleteAllFile(File file){
        if(file.isDirectory()){
            File[] files = file.listFiles();
            for(File f:files){
                if(f.isFile()){
                    f.delete();
                }else{
                    deleteAllFile(f);
                    f.delete();
                }
            }
        }
    }

}
Java中,自定义工具类通常包含一组静态方法或静态变量,这些方法或变量提供了特定的功能,而不需要创建类的实例来使用这些功能。自定义工具类可以简化代码,提高代码的可重用性。下面是一个简单的自定义工具类的例子,以及如何调用它的方法: ```java // 自定义工具类示例 public class Utils { // 静态方法,用于检查字符串是否为空 public static boolean isStringEmpty(String str) { return str == null || str.trim().isEmpty(); } // 静态方法,用于转换字符串为整数 public static int stringToInt(String str) { try { return Integer.parseInt(str); } catch (NumberFormatException e) { return -1; // 如果转换失败,则返回-1作为错误代码 } } } // 调用自定义工具类的方法 public class Main { public static void main(String[] args) { String str = "Hello World"; // 调用isStringEmpty方法 boolean isEmpty = Utils.isStringEmpty(str); System.out.println("字符串是否为空: " + isEmpty); // 调用stringToInt方法 int num = Utils.stringToInt(str); if (num != -1) { System.out.println("字符串转换的整数: " + num); } else { System.out.println("字符串无法转换为整数"); } } } ``` 在这个例子中,`Utils`类包含两个静态方法:`isStringEmpty`和`stringToInt`。`isStringEmpty`用于检查给定的字符串是否为空或只包含空白字符,而`stringToInt`尝试将字符串转换为整数。如果转换失败,方法将返回-1。 在`Main`类中,我们通过`Utils.isStringEmpty(str)`和`Utils.stringToInt(str)`调用这些方法,其中`str`是我们想要检查和转换的字符串。
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值