java工具类,常用工具方法

 我就存一个工具类:ToolUtils.java



import com.chenggutek.cloud.riskctrl.biz.cashloan.comm.model.base.constant.CashloanConstants;
import org.apache.commons.lang3.StringUtils;

import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.Map.Entry;

/**
 * 高频方法集合类
 */
public class ToolUtils {

    /**
     * 获取随机位数的字符串
     *
     * @Date 2017/8/24 14:09
     */
    public static String getRandomString(int length) {
        String base = "abcdefghijklmnopqrstuvwxyz0123456789";
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            int number = random.nextInt(base.length());
            sb.append(base.charAt(number));
        }
        return sb.toString();
    }

    /**
     * 获取随机位数的数字字符串
     *
     * @Date 2017/8/24 14:09
     */
    public static String getRandomMathString(int length) {
        Random random = new Random();
        StringBuffer sb = new StringBuffer();
        for (int i = 0; i < length; i++) {
            int number = random.nextInt(10);
            sb.append(number);
        }
        return sb.toString();
    }

    /**
     * 获取异常的具体信息
     *
     * @Date 2017/3/30 9:21
     * @version 2.0
     */
    public static String getExceptionMsg(Exception e) {
        StringWriter sw = new StringWriter();
        try {
            e.printStackTrace(new PrintWriter(sw));
        } finally {
            try {
                sw.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
        return sw.getBuffer().toString().replaceAll("\\$", "T");
    }

    /**
     * 比较两个对象是否相等。
* 相同的条件有两个,满足其一即可:
* 1. obj1 == null && obj2 == null; 2. obj1.equals(obj2) * * @param obj1 对象1 * @param obj2 对象2 * @return 是否相等 */ public static boolean equals(Object obj1, Object obj2) { return (obj1 != null) ? (obj1.equals(obj2)) : (obj2 == null); } /** * 计算对象长度,如果是字符串调用其length函数,集合类调用其size函数,数组调用其length属性,其他可遍历对象遍历计算长度 * * @param obj 被计算长度的对象 * @return 长度 */ public static int length(Object obj) { if (obj == null) { return 0; } if (obj instanceof CharSequence) { return ((CharSequence) obj).length(); } if (obj instanceof Collection) { return ((Collection) obj).size(); } if (obj instanceof Map) { return ((Map) obj).size(); } int count; if (obj instanceof Iterator) { Iterator iter = (Iterator) obj; count = 0; while (iter.hasNext()) { count++; iter.next(); } return count; } if (obj instanceof Enumeration) { Enumeration enumeration = (Enumeration) obj; count = 0; while (enumeration.hasMoreElements()) { count++; enumeration.nextElement(); } return count; } if (obj.getClass().isArray() == true) { return Array.getLength(obj); } return -1; } /** * 对象中是否包含元素 * * @param obj 对象 * @param element 元素 * @return 是否包含 */ public static boolean contains(Object obj, Object element) { if (obj == null) { return false; } if (obj instanceof String) { if (element == null) { return false; } return ((String) obj).contains(element.toString()); } if (obj instanceof Collection) { return ((Collection) obj).contains(element); } if (obj instanceof Map) { return ((Map) obj).values().contains(element); } if (obj instanceof Iterator) { Iterator iter = (Iterator) obj; while (iter.hasNext()) { Object o = iter.next(); if (equals(o, element)) { return true; } } return false; } if (obj instanceof Enumeration) { Enumeration enumeration = (Enumeration) obj; while (enumeration.hasMoreElements()) { Object o = enumeration.nextElement(); if (equals(o, element)) { return true; } } return false; } if (obj.getClass().isArray() == true) { int len = Array.getLength(obj); for (int i = 0; i < len; i++) { Object o = Array.get(obj, i); if (equals(o, element)) { return true; } } } return false; } /** * 对象是否不为空(新增) * * @param o String,List,Map,Object[],int[],long[] * @return */ public static boolean isNotEmpty(Object o) { return !isEmpty(o); } /** * 对象是否为空 * * @param o String,List,Map,Object[],int[],long[] * @return */ @SuppressWarnings("rawtypes") public static boolean isEmpty(Object o) { if (o == null) { return true; } if (o instanceof String) { if (o.toString().trim().equals("")) { return true; } } else if (o instanceof List) { if (((List) o).size() == 0) { return true; } } else if (o instanceof Map) { if (((Map) o).size() == 0) { return true; } } else if (o instanceof Set) { if (((Set) o).size() == 0) { return true; } } else if (o instanceof Object[]) { if (((Object[]) o).length == 0) { return true; } } else if (o instanceof int[]) { if (((int[]) o).length == 0) { return true; } } else if (o instanceof long[]) { if (((long[]) o).length == 0) { return true; } } return false; } /** * 对象组中是否存在 Empty Object * * @param os 对象组 * @return */ public static boolean isOneEmpty(Object... os) { for (Object o : os) { if (isEmpty(o)) { return true; } } return false; } /** * 对象组中是否全是 Empty Object * * @param os * @return */ public static boolean isAllEmpty(Object... os) { for (Object o : os) { if (!isEmpty(o)) { return false; } } return true; } /** * 是否为数字 * * @param obj * @return */ public static boolean isNum(Object obj) { try { Integer.parseInt(obj.toString()); } catch (Exception e) { return false; } return true; } /** * 如果为空, 则调用默认值 * * @param str * @return */ public static Object getValue(Object str, Object defaultValue) { if (isEmpty(str)) { return defaultValue; } return str; } /** * 强转->string,并去掉多余空格 * * @param str * @return */ public static String toStr(Object str) { return toStr(str, ""); } /** * 强转->string,并去掉多余空格 * * @param str * @param defaultValue * @return */ public static String toStr(Object str, String defaultValue) { if (null == str) { return defaultValue; } return str.toString().trim(); } /** * map的key转为小写 * * @param map * @return Map */ public static Map caseInsensitiveMap(Map map) { Map tempMap = new HashMap<>(); for (String key : map.keySet()) { tempMap.put(key.toLowerCase(), map.get(key)); } return tempMap; } /** * 获取map中第一个数据值 * * @param Key的类型 * @param Value的类型 * @param map 数据源 * @return 返回的值 */ public static V getFirstOrNull(Map map) { V obj = null; for (Entry entry : map.entrySet()) { obj = entry.getValue(); if (obj != null) { break; } } return obj; } /** * 创建StringBuilder对象 * * @return StringBuilder对象 */ public static StringBuilder builder(String... strs) { final StringBuilder sb = new StringBuilder(); for (String str : strs) { sb.append(str); } return sb; } /** * 创建StringBuilder对象 * * @return StringBuilder对象 */ public static void builder(StringBuilder sb, String... strs) { for (String str : strs) { sb.append(str); } } /** * 去掉指定后缀 * * @param str 字符串 * @param suffix 后缀 * @return 切掉后的字符串,若后缀不是 suffix, 返回原字符串 */ public static String removeSuffix(String str, String suffix) { if (isEmpty(str) || isEmpty(suffix)) { return str; } if (str.endsWith(suffix)) { return str.substring(0, str.length() - suffix.length()); } return str; } /** * 判断是否是windows操作系统 * * @Date 2017/5/24 22:34 */ public static Boolean isWinOs() { String os = System.getProperty("os.name"); if (os.toLowerCase().startsWith("win")) { return true; } else { return false; } } /** * 获取临时目录 * * @Date 2017/5/24 22:35 */ public static String getTempPath() { return System.getProperty("java.io.tmpdir"); } /** * 把一个数转化为int * * @Date 2017/11/15 下午11:10 */ public static Integer toInt(Object val) { if (val instanceof Double) { BigDecimal bigDecimal = new BigDecimal((Double) val); return bigDecimal.intValue(); } else { return Integer.valueOf(val.toString()); } } /** * 判断是否只包含字母和数字 * @param str * @return */ public static boolean isNumOrLetter(String str) { return str.matches("[A-Za-z0-9]+"); } /** * 判断是否为都是数字 * @param str * @return */ public static boolean isAllNum(String str) { return str.matches("[0-9]+"); } /** * 判断是否为手机号 * @param mobile * @return */ public static boolean isMobileNum(String mobile) { return mobile.matches("^(1)\\d{10}$"); } /** * 判断是否为汉字 * @param str * @return */ public static boolean isHanZi(String str) { char ch = str.charAt(0); return (ch >= 0x4E00 && ch <= 0x9FA5); } /** * 校验是否为6-20位数字加字母 */ public static boolean checkPwd(String pwd) { String regex = "^(?![0-9]+$)(?![a-zA-Z]+$)[0-9A-Za-z]{6,20}$"; if (pwd == null) { return false; } boolean result = pwd.matches(regex); return result; } /** * 生成交易单号 * @return */ public static String getOrderSn(String prefix, String product) { return prefix + product + System.currentTimeMillis(); } /** * 生成内部订单号 * @return */ public static String getOrderNo(int randNum) { return System.currentTimeMillis() + getRandomMathString(randNum); } /** * 通过渠道信息或者设备信息获取客户端类型 * @return */ public static Integer getClientType(String appMetaData) { if (StringUtils.isEmpty(appMetaData)) { return CashloanConstants.rulesClient.ANDROID; } if ((!StringUtils.isEmpty(appMetaData) && appMetaData.replaceAll(" ", "").toLowerCase().contains("ios")) || (!StringUtils.isEmpty(appMetaData) && appMetaData.replaceAll(" ", "").toLowerCase().contains("iphone"))) { return CashloanConstants.rulesClient.IOS; } return CashloanConstants.rulesClient.ANDROID; } public static String getUuid() { String uuid = UUID.randomUUID().toString(); char[] ar = uuid.toCharArray(); StringBuilder sb = new StringBuilder(); for (int i = 0; i < ar.length; i++) { if (ar[i] != '-') { sb.append(ar[i]); } } return sb.toString(); } public static void main(String[] args) { // 2018-09-21T14:54:20.000+0800 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); try { Date parse = sdf.parse("2018-09-21T14:54:20.000+0800"); System.out.println(parse); } catch (ParseException e) { e.printStackTrace(); } } }

 

你是技术宅么?那就加入我们吧!点击下方链接 或 扫描二维码 即可。

欢迎加入 CSDN技术交流群2:(点击即可加群)QQ群:456543087

               CSDN技术交流群(已满员):(点击即可加群)QQ群:681223095。  

商务合作@群主,谢谢!

因经常有人留言,未能及时查看到和回复,所以特建此群,以方便交流。方便问题讨论,有问题和没有问题的小伙伴均可加入,用作自我学习和共同进步。本博主不一定长期在线,但是qq群里会有很多热心的小伙伴,大家一起讨论解决问题。

 

 

你可能感兴趣的:(java开发笔记)