package org.springblade.common.utils; import org.apache.commons.lang.StringUtils; import java.io.InputStream; import java.math.BigDecimal; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Random; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; /** * 通用工具类 * * @author Chill */ public class CommonUtil { public static String handleNull(Object obj) { if (null == obj) { return ""; } else { return obj.toString().trim(); } } public static String join(Object ...args){ if(args!=null){ if(args.length>2){ List list = Arrays.stream(args).limit(args.length - 1).map(CommonUtil::handleNull).collect(Collectors.toList()); String split=handleNull(args[args.length-1]); return join(list, split); }else{ return handleNull(args[0]); } }else { return ""; } } public static String join(Listlist, String split){ StringBuilder sb = new StringBuilder(); if(list != null && list.size() > 0){ for(String str:list){ if(StringUtils.isNotEmpty(str)){ sb.append(str).append(split); } } if(sb.length()>0 && StringUtils.isNotEmpty(split)){ sb.delete(sb.length() - split.length(), sb.length()); } } return sb.toString(); } public static Matcher matcher(String regex, String value) { Pattern pattern = Pattern.compile(regex); return pattern.matcher(value); } /** * 根据OSS文件路径获取文件输入流 */ public static InputStream getOSSInputStream(String urlStr) throws Exception { //获取OSS文件流 URL imageUrl = new URL(urlStr); HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection(); conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); return conn.getInputStream(); } /** * 随机生成短信验证码 * @param length 生成长度 */ public static String getCharAndNumber(int length) { StringBuilder val = new StringBuilder(); Random random = new Random(); for (int i = 0; i < length; i++) { String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num"; if ("char".equalsIgnoreCase(charOrNum)) { int choice = random.nextInt(2) % 2 == 0 ? 65 : 97; val.append((char) (choice + random.nextInt(26))); } else { val.append(random.nextInt(10)); } } return val.toString(); } /** * 判断参数是否是数字 * @param value 需要判断数据 * @return 判断结果,数字则为true,反之false */ public static boolean checkIsBigDecimal(Object value){ try{ if(StringUtils.isNotEmpty(String.valueOf(value))){ new BigDecimal(String.valueOf(value)); return true; } else { return false; } }catch (Exception e){ return false; } } /** * 根据每页信息分组 */ public static List> getBatchSize(List allIds, int size) { List> batchIds = new ArrayList<>(); if (allIds == null || allIds.size() == 0 || size <= 0) { return batchIds; } int i = 0; List tmp = new ArrayList<>(); for (T map : allIds) { tmp.add(map); i++; if (i % size == 0 || i == allIds.size()) { batchIds.add(tmp); tmp = new ArrayList<>(); } } return batchIds; } }