日期:2014-05-18  浏览次数:21045 次

如何判断一个string类型变量中的值是字母还是数字?
String   a= "abc12bc ";
String   b= "12345 ";
用什么方法可能判断a和b中的值存的是数字还是字母呢?

------解决方案--------------------
不太明白你想要的结果,是判断全部是数字或字母还是判断包含有数字或字符的。我这给你是是判断时候是,一个正则表达式,一个是一般的方法。

/**
* java正则表达式来判断是否全是数字或字母(自己需要打开相应的匹配模式)
*
* @param str
* 待检测字符串
* @return 若是返回true,否则返回false
*/
public static boolean isEmail(String email) {
String regexp = "([0-9]+) "; //纯数字的匹配模式
//String regexp = "([a-zA-Z]+) "; //纯字母的匹配模式
PatternCompiler compiler = new Perl5Compiler();
PatternMatcher matcher = new Perl5Matcher();
Pattern pattern = null;

// Initialization of compiler, matcher, and input omitted;
try {
pattern = compiler.compile(regexp);
} catch (MalformedPatternException e) {
return false;
}

if (matcher.matches(email, pattern))
return true;
else
return false;
}

/**
* 是否只有数字或字母
*
* @param str
* 待检测字符串
* @return 若是返回true,否则返回false
*/
public static boolean isNumber(String str) {
int i, j;
// String strTemp = "0123456789 "; //数字的匹配模式
String strTemp = "abcdefghijklnmopqrstuvwxyzABCDEFGHIJKLNMOPQRSTUVWXYZ ";//字符的匹配模式
if (str.equals( " "))
return true;
for (i = 0; i < str.length(); i++) {
j = strTemp.indexOf(str.charAt(i));
if (j == -1) {// 说明含有不是数字的字符
return false;
}
}
return true;
}