package org.yeshi.utils; import java.io.UnsupportedEncodingException; import java.lang.reflect.Method; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.regex.Matcher; import java.util.regex.Pattern; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Encoder; public class StringUtil { // 判断是否为手机号码 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); if (mobile == null || mobile.equals("") || mobile.length() != 11) { return false; } 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; } /** * 获取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.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(); 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; } /** * 将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(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; } /** * 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; } /** * 提取字符串中的所有数字 * * @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; } /** * 将字符串转为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 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 = java.security.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(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } 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; } }