论坛首页 Java企业应用论坛

Java 中怎样判断一个字符串全是数字

浏览 15587 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (12) :: 隐藏帖 (3)
作者 正文
   发表时间:2011-07-29  
楼主 这个帖子 呃. 真的有的搞笑了吧.
0 请登录后投票
   发表时间:2011-07-29  
感觉正则性能太低,还是用字典比较好,不就是0-9,加小数点吗
0 请登录后投票
   发表时间:2011-07-29  
楼主是来骗链接的,鉴定完毕
0 请登录后投票
   发表时间:2011-07-30  
这个帖子可能有不正确的地方。

如果错了,也请大家批评。

都说一个判断很简单,但是又有多少人自己验证过自己的写法没有错呢?
0 请登录后投票
   发表时间:2011-07-30  
  /** 判断一个字符串是否是数字形式
    * @param    str              String    待检测的字符串
    * @param    can_be_decimal   Boolean   可以是小数,即包含小数点的情况下也返回true
    * @return   boolean
    */
    public static boolean isDecStr(String str, boolean can_be_decimal){
    boolean flag = true;
    int dot_cnt=0; // 检查字符中小数点出现的次数,如果>=2,则不能认定这个字符串要表达是数字  
   
    if( str == null || str.isEmpty() ){
    flag = false;
    }else{
    for (int i = str.length();--i>=0;){
    if (  !Character.isDigit(str.charAt(i)) ){
   
    if( can_be_decimal==true){
    if( str.charAt(i)!='.' )
        flag=false;
    else
        ++dot_cnt;  // 如果是小数点,计数器加1   
    } else {
    flag=false;
    }
   
    }
    }
    }
   
   
    if(dot_cnt>=2)
       flag=false;
   
   
    return flag;
    }
0 请登录后投票
   发表时间:2011-07-30  
另一种思路,代码如下:

public static boolean validatorInteger(String number){
boolean flg = false;
try{
if(number != null && number.trim().length() > 0)
{
number = number.trim();
Integer.parseInt(number);
flg = true;
}
}catch (NumberFormatException e) {
return false;
}
return flg;
}
0 请登录后投票
   发表时间:2011-07-30  
org.apache.commons.lang.math.NumberUtils.isNumber("abc");
这个比较方便
地三方的工具类
0 请登录后投票
   发表时间:2011-07-30  
str.matches("^\\d+$");
0 请登录后投票
   发表时间:2011-07-30  
thanq 写道
str.matches("^\\d+$");

+1




0 请登录后投票
   发表时间:2011-07-31  
rekoe.net 写道
org.apache.commons.lang.math.NumberUtils.isNumber("abc");
这个比较方便
地三方的工具类

刚才我就寻思着commons包下肯定有类似的东西.....
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics