admin
2021-09-30 1a1a315efb1b5dc294013126f35819e36565040c
src/main/java/org/yeshi/utils/StringUtil.java
@@ -17,314 +17,321 @@
public class StringUtil {
   // 判断是否为手机号码
   public static boolean isMobile(String mobile) {
    // 判断是否为手机号码
    public static boolean isMobile(String mobile) {
      String regex = "^((13[0-9])|(17[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$";
      Pattern p = Pattern.compile(regex);
      Matcher m = p.matcher(mobile);
        String regex = "^((13[0-9])|(17[0-9])|(15[^4,\\D])|(18[0-9]))\\d{8}$";
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(mobile);
      if (mobile == null || mobile.equals("") || mobile.length() != 11) {
        if (mobile == null || mobile.equals("") || mobile.length() != 11) {
         return false;
            return false;
      } else {
         return m.find();
      }
   }
        } else {
            return m.find();
        }
    }
   /**
    * 获取数字和字母的随机码
    *
    * @param count
    * @return
    */
   public static String getRandomCode(int count) {
      String sts = "0123456789abcdefghijklmnopqrsduvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
      String code = "";
      for (int i = 0; i < count; i++) {
         int p = (int) (Math.random() * 62);
         code += sts.charAt(p);
      }
      return code;
   }
    /**
     * 获取数字和字母的随机码
     *
     * @param count
     * @return
     */
    public static String getRandomCode(int count) {
        String sts = "0123456789abcdefghijklmnopqrsduvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
        String code = "";
        for (int i = 0; i < count; i++) {
            int p = (int) (Math.random() * 62);
            code += sts.charAt(p);
        }
        return code;
    }
   /**
    * 获取6位数字验证码
    *
    * @return
    */
   public static String getVerifyCode() {
      String sts = "0123456789";
      String code = "";
      for (int i = 0; i < 6; i++) {
         int p = (int) (Math.random() * 10);
         code += sts.charAt(p);
      }
      return code;
   }
    /**
     * 获取6位数字验证码
     *
     * @return
     */
    public static String getVerifyCode() {
        String sts = "0123456789";
        String code = "";
        for (int i = 0; i < 6; i++) {
            int p = (int) (Math.random() * 10);
            code += sts.charAt(p);
        }
        return code;
    }
   /**
    * 判断字符串是否为空
    *
    * @param text
    * @return
    */
   public static boolean isNullOrEmpty(String text) {
      if (text == null || text.trim().length() == 0 || text.equalsIgnoreCase("null")) {
         return true;
      }
      return false;
   }
    /**
     * 判断字符串是否为空
     *
     * @param text
     * @return
     */
    public static boolean isNullOrEmpty(String text) {
        if (text == null || text.trim().length() == 0 || text.equalsIgnoreCase("null")) {
            return true;
        }
        return false;
    }
   /**
    * 32为MD5小写加密
    *
    * @param st
    * @return
    */
   public static String Md5(String st) {
      try {
         MessageDigest md = MessageDigest.getInstance("MD5");
         try {
            md.update(st.getBytes("UTF-8"));
         } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
         }
         byte b[] = md.digest();
    /**
     * 32为MD5小写加密
     *
     * @param st
     * @return
     */
    public static String Md5(String st) {
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            try {
                md.update(st.getBytes("UTF-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }
            byte b[] = md.digest();
         int i;
            int i;
         StringBuffer buf = new StringBuffer("");
         for (int offset = 0; offset < b.length; offset++) {
            i = b[offset];
            if (i < 0)
               i += 256;
            if (i < 16)
               buf.append("0");
            buf.append(Integer.toHexString(i));
         }
         return buf.toString();
         // LogUtil.i("result: " + buf.toString());// 32λ�ļ���
         // LogUtil.i("result: " + buf.toString().substring(8,
         // 24));// 16λ�ļ���
      } catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
      }
      return null;
   }
            StringBuffer buf = new StringBuffer("");
            for (int offset = 0; offset < b.length; offset++) {
                i = b[offset];
                if (i < 0)
                    i += 256;
                if (i < 16)
                    buf.append("0");
                buf.append(Integer.toHexString(i));
            }
            return buf.toString();
            // LogUtil.i("result: " + buf.toString());// 32λ�ļ���
            // LogUtil.i("result: " + buf.toString().substring(8,
            // 24));// 16λ�ļ���
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return null;
    }
   public static String MD5Hmac(String st, String key) {
      try {
         return HmacUtils.byte2hex(HmacUtils.encryptHMAC(st, key));
      } catch (InvalidKeyException e) {
         e.printStackTrace();
      } catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
      } catch (IOException e) {
         e.printStackTrace();
      }
      return null;
   }
    public static String MD5Hmac(String st, String key) {
        try {
            return HmacUtils.byte2hex(HmacUtils.encryptHMAC(st, key));
        } catch (InvalidKeyException e) {
            e.printStackTrace();
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
   /**
    * 将null转为空字符串
    *
    * @param st
    * @return
    */
   public static String getString(String st) {
      return isNullOrEmpty(st) ? "" : st;
   }
    /**
     * 将null转为空字符串
     *
     * @param st
     * @return
     */
    public static String getString(String st) {
        return isNullOrEmpty(st) ? "" : st;
    }
   /**
    * 将整数转为字符串
    *
    * @param i
    * @return
    */
   public static String getString(int i) {
      return getString(i + "");
   }
    /**
     * 将整数转为字符串
     *
     * @param i
     * @return
     */
    public static String getString(int i) {
        return getString(i + "");
    }
   /**
    * 将长整形转为字符串
    *
    * @param i
    * @return
    */
   public static String getString(long i) {
      return getString(i + "");
   }
    /**
     * 将长整形转为字符串
     *
     * @param i
     * @return
     */
    public static String getString(long i) {
        return getString(i + "");
    }
   /**
    * 获取电话号码的隐藏格式
    *
    * @param mobile
    * @return
    */
   public static String getSubMobile(String mobile) {
      if (!StringUtil.isNullOrEmpty(mobile) && mobile.length() > 10) {
         return mobile.subSequence(0, 3).toString() + "****" + mobile.subSequence(7, mobile.length()).toString();
      } else
         return mobile;
   }
    /**
     * 获取电话号码的隐藏格式
     *
     * @param mobile
     * @return
     */
    public static String getSubMobile(String mobile) {
        if (!StringUtil.isNullOrEmpty(mobile) && mobile.length() > 10) {
            return mobile.subSequence(0, 3).toString() + "****" + mobile.subSequence(7, mobile.length()).toString();
        } else
            return mobile;
    }
   /**
    * BASE64加密
    *
    * @param b
    * @return
    */
   @SuppressWarnings("restriction")
   public static String getBase64FromByte(byte[] b) {
    /**
     * BASE64加密
     *
     * @param b
     * @return
     */
    @SuppressWarnings("restriction")
    public static String getBase64FromByte(byte[] b) {
      String s = null;
      if (b != null) {
         s = new BASE64Encoder().encode(b);
      }
      return s;
   }
        String s = null;
        if (b != null) {
            s = new BASE64Encoder().encode(b);
        }
        return s;
    }
   /**
    * 提取字符串中的所有数字
    *
    * @param st
    * @return
    */
   public static String getNumberFromString(String st) {
      String number = "";
      Pattern p = Pattern.compile("[0-9\\.]+");
      Matcher m = p.matcher(st);
    /**
     * 提取字符串中的所有数字
     *
     * @param st
     * @return
     */
    public static String getNumberFromString(String st) {
        String number = "";
        Pattern p = Pattern.compile("[0-9\\.]+");
        Matcher m = p.matcher(st);
      while (m.find()) {
         number += (m.group() + ",");
      }
      return number;
   }
        while (m.find()) {
            number += (m.group() + ",");
        }
        return number;
    }
   /**
    * 将字符串转为UTF-8编码
    *
    * @param resource
    * @param chactor
    * @return
    */
   public static String getUTF8String(String resource, String chactor) {
      if (!isNullOrEmpty(resource)) {
         try {
            return new String(resource.getBytes(chactor), "UTF-8");
         } catch (UnsupportedEncodingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
         }
      }
      return "";
   }
    /**
     * 将字符串转为UTF-8编码
     *
     * @param resource
     * @param chactor
     * @return
     */
    public static String getUTF8String(String resource, String chactor) {
        if (!isNullOrEmpty(resource)) {
            try {
                return new String(resource.getBytes(chactor), "UTF-8");
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        return "";
    }
   /**
    * Base64加密
    *
    * @param str
    * @return
    * @throws Exception
    */
   @SuppressWarnings({ "unchecked", "rawtypes" })
   public static String getBase64String(String str) throws Exception {
      byte[] input = str.getBytes("UTF-8");
      Class clazz = Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
      Method mainMethod = clazz.getMethod("encode", byte[].class);
      mainMethod.setAccessible(true);
      Object retObj = mainMethod.invoke(null, new Object[] { input });
      return (String) retObj;
   }
    /**
     * Base64加密
     *
     * @param str
     * @return
     * @throws Exception
     */
    @SuppressWarnings({"unchecked", "rawtypes"})
    public static String getBase64String(String str) throws Exception {
        byte[] input = str.getBytes("UTF-8");
        Class clazz = Class.forName("com.sun.org.apache.xerces.internal.impl.dv.util.Base64");
        Method mainMethod = clazz.getMethod("encode", byte[].class);
        mainMethod.setAccessible(true);
        Object retObj = mainMethod.invoke(null, new Object[]{input});
        return (String) retObj;
    }
   /**
    * BASE64解密
    *
    * @param s
    * @return
    */
   public static String getFromBase64(String s) {
      byte[] b = null;
      String result = null;
      if (s != null) {
         final Base64 base64 = new Base64();
         try {
            b = base64.decode(s.getBytes("UTF-8"));
            result = new String(b, "utf-8");
         } catch (Exception e) {
            e.printStackTrace();
         }
      }
      return result;
   }
   /**
    * SHA1加密
    *
    * @param decript
    * @return
    */
   public static String SHA1(String decript) {
      try {
         MessageDigest digest = MessageDigest.getInstance("SHA-1");
         digest.update(decript.getBytes());
         byte messageDigest[] = digest.digest();
         // Create Hex String
         StringBuffer hexString = new StringBuffer();
         // 字节数组转换�?十六进制 �?
         for (int i = 0; i < messageDigest.length; i++) {
            String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
            if (shaHex.length() < 2) {
               hexString.append(0);
            }
            hexString.append(shaHex);
         }
         return hexString.toString();
    /**
     * BASE64解密
     *
     * @param s
     * @return
     */
    public static String getFromBase64(String s) {
        byte[] b = null;
        String result = null;
        if (s != null) {
            final Base64 base64 = new Base64();
            try {
                b = base64.decode(s.getBytes("UTF-8"));
                result = new String(b, "utf-8");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        return result;
    }
      } catch (NoSuchAlgorithmException e) {
         e.printStackTrace();
      }
      return "";
   }
    /**
     * SHA1加密
     *
     * @param decript
     * @return
     */
    public static String SHA1(String decript) {
        try {
            MessageDigest digest = MessageDigest.getInstance("SHA-1");
            digest.update(decript.getBytes());
            byte messageDigest[] = digest.digest();
            // Create Hex String
            StringBuffer hexString = new StringBuffer();
            // 字节数组转换�?十六进制 �?
            for (int i = 0; i < messageDigest.length; i++) {
                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
                if (shaHex.length() < 2) {
                    hexString.append(0);
                }
                hexString.append(shaHex);
            }
            return hexString.toString();
   public static long[] parseLong(String[] arr) {
      long[] lArr = new long[arr.length];
      int ii = 0;
      for (String str : arr) {
         lArr[ii] = Long.parseLong(str);
         ii++;
      }
      return lArr;
   }
        } catch (NoSuchAlgorithmException e) {
            e.printStackTrace();
        }
        return "";
    }
   public static String concat(List list, String sperator) {
      if (list == null)
         return null;
      String str = "";
      for (Object obj : list) {
         str += obj + sperator;
      }
      if (str.endsWith(sperator))
         str = str.substring(0, str.length() - sperator.length());
      return str;
   }
    public static long[] parseLong(String[] arr) {
        long[] lArr = new long[arr.length];
        int ii = 0;
        for (String str : arr) {
            lArr[ii] = Long.parseLong(str);
            ii++;
        }
        return lArr;
    }
   public static String concat(Object[] array, String sperator) {
      if (array == null)
         return null;
    public static String concat(List list, String sperator) {
        if (list == null)
            return null;
        String str = "";
        for (Object obj : list) {
            str += obj + sperator;
        }
        if (str.endsWith(sperator))
            str = str.substring(0, str.length() - sperator.length());
        return str;
    }
      String str = "";
      for (int i = 0; i < array.length; i++) {
         str += array[i] + sperator;
      }
    public static String concat(Object[] array, String sperator) {
        if (array == null)
            return null;
      if (str.endsWith(sperator))
         str = str.substring(0, str.length() - sperator.length());
      return str;
   }
        String str = "";
        for (int i = 0; i < array.length; i++) {
            str += array[i] + sperator;
        }
        if (str.endsWith(sperator))
            str = str.substring(0, str.length() - sperator.length());
        return str;
    }
    //首字母小写
    public static String firstCharToLower(String st) {
        if (st == null || st.length() < 2)
            return st;
        return st.substring(0, 1).toLowerCase() + st.substring(1);
    }
}