package cn.edu.hnnu.c.rentacar.util;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class StringUtil {
private StringUtil() {
}
// 判断一个字符串是否为空
public static boolean isNull(String str) {
if (str == null || str.trim().equals("")) {
return true;
} else {
return false;
}
}
// 判断一个字符串是否为仅由数字字符组成
public static boolean isDigit(String str) {
if (StringUtil.isNull(str)) {
return false;
}
char[] charArray = str.toCharArray();
int count = 0;
for (int i = 0; i < charArray.length; i++) {
if (charArray[i] >= 0x30 && charArray[i] <= 0x39) {
count++;
}
}
if (count == charArray.length) {
return true;
} else {
return false;
}
}
// 判断一个字符串是否仅由大小写英文字母或数字组成
public static boolean isLetterOrDigit(String str) {
if (StringUtil.isNull(str)) {
return false;
}
char[] charArray = str.toCharArray();
int count = 0;
for (int i = 0; i < charArray.length; i++) {
if ((charArray[i] >= 0x30 && charArray[i] <= 0x39)
|| (charArray[i] >= 0x61 && charArray[i] <= 0x7a)
|| charArray[i] >= 0x41 && charArray[i] <= 0x5a) {
count++;
}
}
if (count == charArray.length) {
return true;
} else {
return false;
}
}
// 判断一个字符串是否仅由汉字组成
public static boolean isChineseCharacters(String str) {
if (StringUtil.isNull(str)) {
return false;
}
char[] chars = str.toCharArray();
int count = 0;
for (int i = 0; i < chars.length; i++) {
String test = chars[i] + "";
if (test.getBytes().length == test.length()) {
// 不是汉字,特殊字符
count--;
} else {
// 汉字或特殊字符
count++;
}
}
if (count == str.length()) {
// 该字符串只有汉字或特殊字符
return StringUtil.isChineseCharNotSpecialChar(str);
} else {
return false;
}
}
// 该方法私有,仅供内部调用
private static boolean isChineseCharNotSpecialChar(String str) {
// str只有汉字和特殊字符
String regEx = "[\\u4e00-\\u9fa5]";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(str);
String newstr = "";
while (m.find()) {
newstr = newstr + m.group(0);
}
if (newstr.length() == str.length()) {
// 汉字
return true;
} else {
// 特殊字符
return false;
}
}
}
转载于:https://www.cnblogs.com/smile66/archive/2012/10/31/2747409.html