Javaphua Blog

BlogJava 首页 新随笔 联系 聚合 管理
  46 Posts :: 5 Stories :: 46 Comments :: 0 Trackbacks

 

 java中判断字符串是否为数字的三种方法
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用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;
}
posted on 2007-06-05 14:17 Javaphua 阅读(121448) 评论(23)  编辑  收藏

Feedback

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2008-10-21 09:24 dong
xiexie  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2009-01-14 09:56 aaa
@dong
怎么你们所谓的判断数字,就都是个正整数呢,负数不属于数字么?所有的方法都吧负数做为非数字判断了,可以提供个也可以判断负数的判断函数么.  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2009-03-17 09:23 microjava
你就不知道自己加个负号的判断啊  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2009-04-01 23:09 匿名
chr==46 小数也可以
多谢楼主提供的解决方案
稍加修改就可以适应我的需求了 ^_^  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2010-05-14 15:00 姓名
return str.matches("\\d*");  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2010-12-21 10:14 sam
怎么都这样,很明显至少第二/三种是只适用正整数;
  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2010-12-21 10:25 sam
为什么Java不提供一个这样的方法了,假如提供,估计不会使用第二种类似的方案(估计性能不够做库函数);  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2012-05-18 11:49 吴九生
//这才是最地道的
public static boolean isNumeric(String str){
try {
Integer.parseInt(str);
return true;
} catch (NumberFormatException e) {
// TODO Auto-generated catch block
return false;
}
}  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2012-07-25 11:41
^(-)?\d+(\.\d+)?$  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2013-03-18 15:28 KING
@吴九生
明显不行,long和double是不是也是数字.  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2013-11-28 09:30 吴波
@吴九生

try...catch 不适合做这种处理,try...catch影响性能,在高并发高效率的项目中,这是不被允许的!  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2013-12-02 16:16 ket
楼主这第二种方法是有问题的,不能判断  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2014-03-25 22:17 LLC
实不相瞒,楼主第一种和第三种严重有误,比如“21qw12”就返回true  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2014-04-25 10:34 XiaoCheng_wu
把第二种方法的正则改一下
public static boolean isNumeric(String str){
Pattern pattern = Pattern.compile("-?[0-9]+.?[0-9]+");
return pattern.matcher(str).matches();
}   回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2014-06-26 15:01 XXXX
@XiaoCheng_wu
如果是科学计数法表示的数字字符串,上面的正则表达式就不适用了。
如“0E-12"这样的字符串  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2014-07-11 11:28 123123
。。。。@XXXX
  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 [未登录] 2014-07-11 11:29 123123
你妹啊@XXXX
  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2014-07-24 23:56 好人
@吴九生
顶 !!  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2014-08-03 19:34 LL
实不相瞒,思想太局限了。为什么所谓的数字一定要是正整数?难道实数就不是数字吗?  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2014-11-27 10:38 Perter
@吴九生
我赞成这个,叼叼叼叼,最确切的应该用parseFloat  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2015-04-21 09:44 zuidaima
java正则判断字符串是否是由纯数字组成的问题
http://zuidaima.com/question/1931119473249280.htm  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2015-04-27 15:30 寂寞在明天
public static boolean isNumber(String str)
{
if(str==null||str.length()<=0)
return false;
String reg="([+-]{0,1}0\\.\\d+)|([+-]{0,1}[1- 9]\\d*\\.\\d+)|([+-]{0,1}[1-9]\\d*)|([+-]{0,1}0)";
return str.matches(reg);
}

说明一下:1.需要验证+—号
2.需要验证小数点
3.小数必须合法,譬如0.1合法,0.2.0和00.2不合法
4.必须对0验证,当然+0和-0也是合法的  回复  更多评论
  

# re: [转]java中判断字符串是否为数字的三种方法 2015-04-27 15:34 寂寞在明天
对于上面的程序说明下:第一个|之前对0.xx验证。第二个|之前的对类似22.xx验证。第三个|对整数验证。第四个对0验证。
写的不对的地方大家指出。  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: