java高频方法集合类精华(时间,对象是否为空,数组等)
2017-09-04 15:38
274 查看
/** * 高频方法集合类 */ public class ToolUtil { /** * 判断一个对象是否是时间类型 */ public static String dateType(Object o) { if (o instanceof Date) { return DayUtil.DATE_FORMAT_DAY.format((Date) o); } else { return o.toString(); } } /** * 获取异常的具体信息 */ 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"); } /** * @Description 主键id */ public static String getUid() { return getRandomNum(); } /** * @Description 随机数字 */ public static String getRandomNum() { return Calendar.getInstance().getTimeInMillis() + generateCellPhoneValNum(); } /** * @Description 获取电话号码 */ public static String generateCellPhoneValNum() { String[] beforeShuffle = new String[]{"1", "2", "3", "4", "5", "6", "7", "8", "9", "0"}; List<String> list = Arrays.asList(beforeShuffle); Collections.shuffle(list); StringBuilder buffer = new StringBuilder(); for (int i = 0; i < list.size(); i++) { buffer.append(list.get(i)); } String afterShuffle = buffer.toString(); String result = afterShuffle.substring(3, 9); return result; } /** * 比较两个对象是否相等。<br> * 相同的条件有两个,满足其一即可:<br> * 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 obj String,List,Map,Object[],int[],long[] * @return */ public static boolean isNotEmpty(Object o) { return !isEmpty(o); } /** * 对象是否为空 * * @param obj 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; } /** * 格式化文本 * * @param template 文本模板,被替换的部分用 {} 表示 * @param values 参数值 * @return 格式化后的文本 */ public static String format(String template, Object... values) { return StrKit.format(template, values); } /** * 格式化文本 * * @param template 文本模板,被替换的部分用 {key} 表示 * @param map 参数值对 * @return 格式化后的文本 */ public static String format(String template, Map<?, ?> map) { return StrKit.format(template, map); } /** * 强转->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<String,Object> */ public static Map<String, Object> caseInsensitiveMap(Map<String, Object> map) { Map<String, Object> tempMap = new HashMap<String, Object>(); for (String key : map.keySet()) { tempMap.put(key.toLowerCase(), map.get(key)); } return tempMap; } /** * 获取map中第一个数据值 * * @param <K> Key的类型 * @param <V> Value的类型 * @param map 数据源 * @return 返回的值 */ public static <K, V> V getFirstOrNull(Map<K, V> map) { V obj = null; for (Entry<K, V> 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; } /** * 当前时间 * * @author stylefeng * @Date 2017/5/7 21:56 */ public static String currentTime() { return DayUtil.DATE_FORMAT_LONG.format(new Date()); } /** * 首字母大写 * * * */ public static String firstLetterToUpper(String val) { return StrKit.firstCharToUpperCase(val); } /** * 首字母小写 * * * */ public static String firstLetterToLower(String val) { return StrKit.firstCharToLowerCase(val); } /** * 判断是否是windows操作系统 * * * */ public static Boolean isWinOs() { String os = System.getProperty("os.name"); if (os.toLowerCase().startsWith("win")) { return true; } else { return false; } } /** * 获取临时目录 * * * */ public static String getTempPath() { return System.getProperty("java.io.tmpdir"); } }
public class DayUtil { //log private static final Logger logger = LoggerFactory.getLogger(GeneralIntroductionQueryParam.class); //日期格式-日 public static final DateFormat DATE_FORMAT_DAY = new SimpleDateFormat("yyyy-MM-dd"); //日期格式-日-短格式 public static final DateFormat DATE_FORMAT_SHORT = new SimpleDateFormat("yyyyMMdd"); //日期格式-日-长格式 public static final DateFormat DATE_FORMAT_LONG= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** * 日期字符串检查 * * @param oneDay 单日日期字符串 * @return 转换成日期类型 */ public static Date checkDayDate(String oneDay, String errorMsg) { if (errorMsg == null || errorMsg.length() == 0) throw new ValidationException("输入字期字符串为空!"); Date result = null; try { result = DATE_FORMAT_DAY.parse(oneDay.trim()); } catch (ParseException e) { logger.error("checkDayDate error:", ExceptionUtils.getStackTrace(e)); logger.error("发生参数转换错误,参数为:" + oneDay); throw new ValidationException("参数值:" + oneDay + " " + errorMsg); } catch (Exception e) { logger.error("发生参数转换错误,参数为:" + oneDay); logger.error("checkDayDate error:", ExceptionUtils.getStackTrace(e)); } return result; } /** * 日是期类型格式转换 * * @param srcFormat 源格式 * @param targetFormat 目标格式 * @param dateStr 要转换的日期字符串 * @return 转换后字符串 */ public static String convert(DateFormat srcFormat, DateFormat targetFormat, String dateStr) { try { Date date = srcFormat.parse(dateStr); return targetFormat.format(date); } catch (Exception e) { logger.error("convert error:", ExceptionUtils.getStackTrace(e)); } return null; }
日期:
public class DayUtil {//logprivate static final Logger logger = LoggerFactory.getLogger(GeneralIntroductionQueryParam.class);//日期格式-日public static final DateFormat DATE_FORMAT_DAY = new SimpleDateFormat("yyyy-MM-dd");//日期格式-日-短格式public static final DateFormat DATE_FORMAT_SHORT = new SimpleDateFormat("yyyyMMdd");//日期格式-日-长格式public static final DateFormat DATE_FORMAT_LONG= new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");/*** 日期字符串检查** @param oneDay 单日日期字符串* @return 转换成日期类型*/public static Date checkDayDate(String oneDay, String errorMsg) {if (errorMsg == null || errorMsg.length() == 0) throw new ValidationException("输入字期字符串为空!");Date result = null;try {result = DATE_FORMAT_DAY.parse(oneDay.trim());} catch (ParseException e) {logger.error("checkDayDate error:", ExceptionUtils.getStackTrace(e));logger.error("发生参数转换错误,参数为:" + oneDay);throw new ValidationException("参数值:" + oneDay + " " + errorMsg);} catch (Exception e) {logger.error("发生参数转换错误,参数为:" + oneDay);logger.error("checkDayDate error:", ExceptionUtils.getStackTrace(e));}return result;}/*** 日是期类型格式转换** @param srcFormat 源格式* @param targetFormat 目标格式* @param dateStr 要转换的日期字符串* @return 转换后字符串*/public static String convert(DateFormat srcFormat, DateFormat targetFormat, String dateStr) {try {Date date = srcFormat.parse(dateStr);return targetFormat.format(date);} catch (Exception e) {logger.error("convert error:", ExceptionUtils.getStackTrace(e));}return null;}}
相关文章推荐
- java判断对象是否为数组 并且取得数组的值 --- 用instanceof或则isArray() 方法
- java集合或对象转化为json数组或者对象的方法
- java 判断对象是否为空或者传入集合对象的是否为空,以及判断数组的长度
- java判断对象是否为数组 并且取得数组的值 --- 用instanceof或则isArray() 方法
- java在list集合指定位置插入对象和js在数组指定位置插入对象的方法
- java判定数组或集合是否存在某个元素
- java中List对象集合的遍历方法
- java中把对象、对象bean、list集合、对象数组、Map和Set以及字符串转换成Json
- java中把对象转化为byte数组的方法
- Java遍历集合、数组的四种方法
- 把传过来的Object对象转换成Collection类型的对象。isArray()方法,判定此Class对象是否表示一个数组类。java.lang.reflect.Array 对任意数组进行操作
- java学习笔记(四)----对象、数组作为参数传递,静态变量、静态方法的使用,内部类,使用文档注释
- java判定数组或集合是否存在某个元素
- Java 集合与数组相互转换的方法
- Java遍历集合、数组的四种方法
- 深入java的equals方法,怎么比较两个对象的内容是否相等?对象的内容指的是什么?
- JNI学习笔记:(1)开篇(2)本地代码访问Java代码 (3)本地方法取得Java属性/调用java方法 (4)本地代码创建Java对象(包括javaString) (5) 本地方法处理java数组
- JAVA中根据集合中对象属性排序的方法
- Java中系统时间与C#DateTime对象之间转换方法
- java中把对象转化为byte数组的方法