package com.yeshi.fanli.util; 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 javax.servlet.http.HttpServletRequest; import org.apache.commons.codec.binary.Base64; import sun.misc.BASE64Encoder; public class StringUtil { public static String getWholePathWithHost(HttpServletRequest request, String path) { String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath() + "/"; return basePath + path; } public static String getBasePath(HttpServletRequest request) { String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + request.getContextPath();// ������ʽ return basePath; } public static String getWholePath(HttpServletRequest request, String url) { if (url != null) { if (url.startsWith("http://") || url.startsWith("https://")) return url; else return getWholePathWithHost(request, url); } return ""; } // 是否为电话号码 public static boolean isMobile(String mobile) { String regex = "^((13[0-9])|(17[0-9])|(15[^4,\\D])|(18[0-9])|(19[0-9])|(16[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(); } } /** * �������� * * @return */ public static String getRandomCode() { String sts = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; String code = ""; for (int i = 0; i < 10; i++) { int p = (int) (Math.random() * 26); code += sts.charAt(p); } return code; } 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; } /** * ��֤�����? * * @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; } public static String getVerifyCode(int count) { String sts = "0123456789"; String code = ""; for (int i = 0; i < count; i++) { int p = (int) (Math.random() * 10); code += sts.charAt(p); } return code; } // ��ȡ���ŷ��͵ĸ�ʽ public static String getMessageStyle(String code) { return "У����:" + code + ",�����˺�ע�ᡣ���������κ����ṩ���յ��Ķ���У���롿"; } // �Ƿ��ǿյ��ַ� public static boolean isNullOrEmpty(String text) { if (text == null || text.length() == 0 || text.equalsIgnoreCase("null")) { return true; } return false; } // 32λMD5���� public static String Md5(String st) { try { MessageDigest md = MessageDigest.getInstance("MD5"); try { md.update(st.getBytes("UTF-8")); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block 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; } public static String getString(String st) { return isNullOrEmpty(st) ? "" : st; } public static String getString(int i) { return getString(i + ""); } public static String getString(long i) { return getString(i + ""); } /* * ��ȡ�м���Ǻŵĵ绰����? */ 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; } public static String getBase64FromByte(byte[] b) { String s = null; if (b != null) { s = new BASE64Encoder().encode(b); } return s; } public static int getPage(String page) { if (StringUtil.isNullOrEmpty(page)) { return 0; } else { try { return Integer.parseInt(page); } catch (Exception e) { return 0; } } } 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; } public static String getNotNullString(String st) { if (isNullOrEmpty(st)) return ""; else return st; } 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 ""; } @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; } // 解密 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; } 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; } }