/需要导入第三方jar包pinyin4j.jar import net.sourceforge.pinyin4j.PinyinHelper; import java.util.regex.Matcher; import java.util.regex.Pattern; public class StringUtils { protected static final String TAG = StringUtils.class.getSimpleName(); /** * 增加空白 */ public static String addBlank(int size) { return String.format("%" + size + "s", ""); } /** * 判断字符串是否为null或者"" */ public static boolean isEmptyOrNull(String content) { if (content == null || content.equals("")) { return true; } return false; } /** * 判断字符串是否为IP地址 */ public static boolean isIPAddress(String ipString) { if (ipString != null) { String[] singleArray = ipString.split("\."); if (singleArray == null) { return false; } for (String numString : singleArray) { if (isEmptyOrNull(numString.trim())) { return false; } try { int num = Integer.parseInt(numString.trim()); if (num < 0 || num > 255) { return false; } } catch (NumberFormatException e) { return false; } } return true; } return false; } /** * 是否是email地址 */ public static boolean isEmailAddress(String emailString) { String format = "\p{Alpha}\w{2,15}[@][a-z0-9]{3,}[.]\p{Lower}{2,}"; return isMatch(format, emailString); } /** * 是否为数字 */ public static boolean isDigit(String digitString) { if (!isEmptyOrNull(digitString)) { String regex = "[0-9]*"; return isMatch(regex, digitString); } return false; } /** * 字符串正则校验 */ public static boolean isMatch(String regex, String string) { Pattern pattern = Pattern.compile(regex); Matcher matcher = pattern.matcher(string); return matcher.matches(); } /** *是否为URL地址 */ public static boolean isUrl(String strIp) { String strPattern = "^((https?)|(ftp))://(?:(\s+?)(?::(\s+?))?@)?([a-zA-Z0-9\-.]+)" + "(?::(\d+))?((?:/[a-zA-Z0-9\-._?,'+\&%$=~*!():@\\]*)+)?$"; return isMatch(strPattern, strIp); } /** * String 转换成Unicode * @param string * 传入汉字 * @return */ public static String string2Unicode(String string) { if (!isEmptyOrNull(string)) { char[] charArray = string.toCharArray(); StringBuffer buffer = new StringBuffer(); for (char ch : charArray) { int code = (int) ch; buffer.append(code); } return buffer.toString(); } return null; } /** * Unicode转换成String * @param string * @return */ public static String unicode2String(String string) { if (!isEmptyOrNull(string)) { int end = 0; String noSpace = string.trim(); int count = noSpace.length() / 5; StringBuffer buffer = new StringBuffer(); for (int j = 0; j < count; j++) { end += 5; int uCode = Integer.valueOf(noSpace.substring(j * 5, end)); buffer.append((char) uCode); } return buffer.toString(); } return null; } /** * 得到首字母 */ public static String getPinYinFirstLetter(String string) { if (!isEmptyOrNull(string)) { char[] cs = string.toCharArray(); for (int i = 0; i < cs.length; i++) { String[] pinyins = null; if (cs[i] > 128) { pinyins = PinyinHelper.toHanyuPinyinStringArray(cs[i]); } if (pinyins != null && pinyins.length > 0) { return pinyins[0].substring(0, 1); } } } return null; } /** * 获取url参数 */ public static String getParamValueOfUrl(String url, String paramName) { try { String urls[] = url.split("[?]"); if (urls.length > 1) { String param = urls[1]; String params[] = param.split("[&]"); for (String string : params) { String keyAndValue[] = string.split("[=]"); if (keyAndValue.length > 1) { String key = keyAndValue[0]; String value = keyAndValue[1]; if (key.equalsIgnoreCase(paramName)) { return value; } } } } } catch (Exception e) { return ""; } return ""; } /** * 半角转换为全角 * @param input * @return */ public static String ToDBC(String input) { char[] c = input.toCharArray(); for (int i = 0; i < c.length; i++) { if (c[i] == 12288) { c[i] = (char) 32; continue; } if (c[i] > 65280 && c[i] < 65375) c[i] = (char) (c[i] - 65248); } return new String(c); } /** * 去除特殊字符或将所有中文标号替换为英文标号 * @param str * @return */ public static String stringFilter(String str) { str = str.replaceAll("【", "[").replaceAll("】", "]").replaceAll("!", "!").replaceAll(":", ":");// 替换中文标号 String regEx = "[『』]"; // 清除掉特殊字符 Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(str); return m.replaceAll("").trim(); } /** * 根据Unicode编码完美的判断中文汉字和符号 * @param c * @return */ private static boolean isChinese(char c) { Character.UnicodeBlock ub = Character.UnicodeBlock.of(c); if (ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_COMPATIBILITY_IDEOGRAPHS || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_A || ub == Character.UnicodeBlock.CJK_UNIFIED_IDEOGRAPHS_EXTENSION_B || ub == Character.UnicodeBlock.CJK_SYMBOLS_AND_PUNCTUATION || ub == Character.UnicodeBlock.HALFWIDTH_AND_FULLWIDTH_FORMS || ub == Character.UnicodeBlock.GENERAL_PUNCTUATION) { return true; } return false; } /** * 完整的判断中文汉字和符号 * @param strName * @return */ public static boolean isChinese(String strName) { char[] ch = strName.toCharArray(); for (int i = 0; i < ch.length; i++) { char c = ch[i]; if (isChinese(c)) { return true; } } return false; } public static String parseStream2Str(InputStream is) { //内存输出流 ByteArrayOutputStream baos = new ByteArrayOutputStream(); int len = -1; byte[] buffer = new byte[1024*8]; try { while((len = is.read(buffer)) != -1){ baos.write(buffer, 0, len); } return new String(baos.toByteArray()); } catch (Exception e) { e.printStackTrace(); return null; } } }