CommonUtil.java 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. package org.springblade.common.utils;
  2. import org.apache.commons.lang.StringUtils;
  3. import java.io.InputStream;
  4. import java.math.BigDecimal;
  5. import java.net.HttpURLConnection;
  6. import java.net.URL;
  7. import java.util.ArrayList;
  8. import java.util.Arrays;
  9. import java.util.List;
  10. import java.util.Random;
  11. import java.util.regex.Matcher;
  12. import java.util.regex.Pattern;
  13. import java.util.stream.Collectors;
  14. /**
  15. * 通用工具类
  16. *
  17. * @author Chill
  18. */
  19. public class CommonUtil {
  20. public static String handleNull(Object obj) {
  21. if (null == obj) {
  22. return "";
  23. } else {
  24. return obj.toString().trim();
  25. }
  26. }
  27. public static String join(Object ...args){
  28. if(args!=null){
  29. if(args.length>2){
  30. List<String> list = Arrays.stream(args).limit(args.length - 1).map(CommonUtil::handleNull).collect(Collectors.toList());
  31. String split=handleNull(args[args.length-1]);
  32. return join(list, split);
  33. }else{
  34. return handleNull(args[0]);
  35. }
  36. }else {
  37. return "";
  38. }
  39. }
  40. public static String join(List<String>list, String split){
  41. StringBuilder sb = new StringBuilder();
  42. if(list != null && list.size() > 0){
  43. for(String str:list){
  44. if(StringUtils.isNotEmpty(str)){
  45. sb.append(str).append(split);
  46. }
  47. }
  48. if(sb.length()>0 && StringUtils.isNotEmpty(split)){
  49. sb.delete(sb.length() - split.length(), sb.length());
  50. }
  51. }
  52. return sb.toString();
  53. }
  54. public static Matcher matcher(String regex, String value) {
  55. Pattern pattern = Pattern.compile(regex);
  56. return pattern.matcher(value);
  57. }
  58. /**
  59. * 根据OSS文件路径获取文件输入流
  60. */
  61. public static InputStream getOSSInputStream(String urlStr) throws Exception {
  62. //获取OSS文件流
  63. URL imageUrl = new URL(urlStr);
  64. HttpURLConnection conn = (HttpURLConnection) imageUrl.openConnection();
  65. conn.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
  66. return conn.getInputStream();
  67. }
  68. /**
  69. * 随机生成短信验证码
  70. * @param length 生成长度
  71. */
  72. public static String getCharAndNumber(int length) {
  73. StringBuilder val = new StringBuilder();
  74. Random random = new Random();
  75. for (int i = 0; i < length; i++) {
  76. String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
  77. if ("char".equalsIgnoreCase(charOrNum)) {
  78. int choice = random.nextInt(2) % 2 == 0 ? 65 : 97;
  79. val.append((char) (choice + random.nextInt(26)));
  80. } else {
  81. val.append(random.nextInt(10));
  82. }
  83. }
  84. return val.toString();
  85. }
  86. /**
  87. * 判断参数是否是数字
  88. * @param value 需要判断数据
  89. * @return 判断结果,数字则为true,反之false
  90. */
  91. public static boolean checkIsBigDecimal(Object value){
  92. try{
  93. if(StringUtils.isNotEmpty(String.valueOf(value))){
  94. new BigDecimal(String.valueOf(value));
  95. return true;
  96. } else {
  97. return false;
  98. }
  99. }catch (Exception e){
  100. return false;
  101. }
  102. }
  103. /**
  104. * 根据每页信息分组
  105. */
  106. public static <T> List<List<T>> getBatchSize(List<T> allIds, int size) {
  107. List<List<T>> batchIds = new ArrayList<>();
  108. if (allIds == null || allIds.size() == 0 || size <= 0) {
  109. return batchIds;
  110. }
  111. int i = 0;
  112. List<T> tmp = new ArrayList<>();
  113. for (T map : allIds) {
  114. tmp.add(map);
  115. i++;
  116. if (i % size == 0 || i == allIds.size()) {
  117. batchIds.add(tmp);
  118. tmp = new ArrayList<>();
  119. }
  120. }
  121. return batchIds;
  122. }
  123. }