1.用正则表达式
首先要import java.util.regex.Pattern 和 java.util.regex.Matcher
/**
* 利用正则表达式判断字符串是否是数字
* @param str
* @return
*/
public boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return false;
}
return true;
}
/**
* 判断字符串是否是数字,如果是数字就返回,否则返回0
* @param str
* @return
*/
public static Long getInt(String str){
Pattern pattern = Pattern.compile("[0-9]*");
Matcher isNum = pattern.matcher(str);
if( !isNum.matches() ){
return 0L;
}
return Long.parseLong(str);
}
2.用JAVA自带的函数
public static boolean isNumeric(String str)
{
for (int i = 0; i < str.length(); i++)
{
System.out.println(str.charAt(i));
if (!Character.isDigit(str.charAt(i)))
{
return false;
}
}
return true;
}
3.使用org.apache.commons.lang
org.apache.commons.lang.StringUtils;
boolean isNunicodeDigits=StringUtils.isNumeric("aaa123456789");
http://jakarta.apache.org/commons/lang/api-release/index.html下面的解释:
public static boolean isNumeric(String str)Checks if the String contains only unicode digits. A decimal point is not a unicode digit and returns false.
null will return false. An empty String ("") will return true.
StringUtils.isNumeric(null) = false
StringUtils.isNumeric("") = true
StringUtils.isNumeric(" ") = false
StringUtils.isNumeric("123") = true
StringUtils.isNumeric("12 3") = false
StringUtils.isNumeric("ab2c") = false
StringUtils.isNumeric("12-3") = false
StringUtils.isNumeric("12.3") = false