package com.ks.tool.bkz.util;
|
|
import org.apache.commons.codec.binary.Base64;
|
import sun.misc.BASE64Encoder;
|
|
import java.io.IOException;
|
import java.io.UnsupportedEncodingException;
|
import java.lang.reflect.Method;
|
import java.security.InvalidKeyException;
|
import java.security.MessageDigest;
|
import java.security.NoSuchAlgorithmException;
|
import java.util.regex.Matcher;
|
import java.util.regex.Pattern;
|
|
public class StringUtil {
|
|
public static boolean isEmail(String email) {
|
String mailName = "^[0-9a-z]+\\w*"; //^表明一行以什么开头;^[0-9a-z]表明要以数字或小写字母开头;\\w*表明匹配任意个大写小写字母或数字或下划线
|
String mailDomain = "([0-9a-z]+\\.)+[0-9a-z]+$";
|
String mailRegex = mailName + "@" + mailDomain;
|
if (email != null && email.matches(mailRegex)) {
|
return true;
|
} else {
|
return false;
|
}
|
}
|
|
// 判断是否为手机号码
|
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.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();
|
|
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 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;
|
}
|
|
/**
|
* 将整数转为字符串
|
*
|
* @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 = 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;
|
}
|
|
}
|