锁定老帖子 主题:Java 中怎样判断一个字符串全是数字
精华帖 (0) :: 良好帖 (0) :: 新手帖 (12) :: 隐藏帖 (3)
|
|
---|---|
作者 | 正文 |
发表时间:2011-07-29
楼主 这个帖子 呃. 真的有的搞笑了吧.
|
|
返回顶楼 | |
发表时间:2011-07-29
感觉正则性能太低,还是用字典比较好,不就是0-9,加小数点吗
|
|
返回顶楼 | |
发表时间:2011-07-29
楼主是来骗链接的,鉴定完毕
|
|
返回顶楼 | |
发表时间:2011-07-30
这个帖子可能有不正确的地方。
如果错了,也请大家批评。 都说一个判断很简单,但是又有多少人自己验证过自己的写法没有错呢? |
|
返回顶楼 | |
发表时间: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; } |
|
返回顶楼 | |
发表时间: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; } |
|
返回顶楼 | |
发表时间:2011-07-30
org.apache.commons.lang.math.NumberUtils.isNumber("abc");
这个比较方便 地三方的工具类 |
|
返回顶楼 | |
发表时间:2011-07-30
str.matches("^\\d+$");
|
|
返回顶楼 | |
发表时间:2011-07-30
thanq 写道 str.matches("^\\d+$"); +1 |
|
返回顶楼 | |
发表时间:2011-07-31
rekoe.net 写道 org.apache.commons.lang.math.NumberUtils.isNumber("abc");
这个比较方便 地三方的工具类 刚才我就寻思着commons包下肯定有类似的东西..... |
|
返回顶楼 | |