判断字符是否为数字

下面有四种方法,估计好用的应该是第三种吧。
1.用JAVA自带的函数
public static boolean isNumeric(String str){
for (int i = str.length();--i>=0;){
if (!Character.isDigit(str.charAt(i))){
return false;
}
}
return true;
}
2.正则表达式
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("[0-9]*");
return pattern.matcher(str).matches();
}
3.还是正则表达式
public static boolean isNumeric(String str){
if(str.matches("\\d*"){
return true;
}else{
return false;
}
}
4.用ascii码
public static boolean isNumeric(String str){
for(int i=str.length();--i>=0;){
int chr=str.charAt(i);
if(chr<48 || chr>57)
return false;
}
return true;
}

 

  判断某个字符串中的字符是否全部为数字,可谓有多种方法,现在对其进行一下总结并对每种方法进行一下解析和评价。
  方法一:利用正则表达式
  例: using System.Text.RegularExpressions; public static bool IsNumber(string str) { if (str== null) { return false; } return Regex.IsMatch(str, @"^\d+$",RegexOptions.Singleline); }  利用正则表达式是一种很好的方法,对输入的字符串没有要求,任何长度、类型的字符串都可以,建议使用。
  方法二:将字符串拆分,判断字符是否为数字
  例: public static bool IsNumber(String str) { for (int i = 0; i 字符串是否为数字,也是一个很好的方法。
  方法三:将字符串进行强制类型转换
  例: public static bool IsNumber(String str) { string s = str; int i = 0; bool result = int.TryParse(s, out i); if (result) { "就是数字" }else{ "不是数字" } } 
  进行强制类型转换,如果能够转换则是数字,如果不能转换则不都是数字。这种方法有一定的局限性,那就是字符串的长度不能太长,如果超过int的范围,即使都是数字,也会显示不是数字,不建议使用。但是前面两种方法也有一个缺点就是,如果这个字符串代表的是一个负数,那么用其判断的话,也会提示不是数字,在运用的时候还需灵活掌握。

posted @ 2012-11-16 10:17  刀锋浪  阅读(746)  评论(0编辑  收藏  举报