StringUtils
/需要导入第三方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;
}
}
}
最后,关注【码上加油站】微信公众号后,有疑惑有问题想加油的小伙伴可以码上加入社群,让我们一起码上加油吧!!!
浙公网安备 33010602011771号