| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 7524 人关注过本帖
标题:[求助]如何判断输入是字符是不是数字?
只看楼主 加入收藏
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
结帖率:100%
收藏
 问题点数:0 回复次数:8 
[求助]如何判断输入是字符是不是数字?
比如
str=buf.readLine();
a=Integer.parseInt(str);
在中间应该加一个判断语句.如果不加.当输入的不是数字会报错的.
谢谢了!
搜索更多相关主题的帖子: 数字 字符 判断 输入 
2008-03-20 20:34
hwoarangzk
Rank: 4
来 自:冰封王座
等 级:贵宾
威 望:12
帖 子:1894
专家分:0
注 册:2007-7-17
收藏
得分:0 
你可以用equals或者正则表达式来判断,反正一共就10个数字

I'm here, as always...
2008-03-20 21:41
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
我遇到过这种情况...做的是一个类似excel的表格...捕捉错误也不能解决问题...

学习需要安静。。海盗要重新来过。。
2008-03-20 21:59
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
正则表达式?...还没听过,真是谢谢了.
今天看了一下资料.学习了一下,好像还是有点问题-_-!
继续学习中...

import *;
import java.util.regex.*;
public class example {
    public static void main(String []args)throws IOException {
        BufferedReader buf;
        buf=new BufferedReader(new InputStreamReader(System.in));
        String str;
        int a=0;
        
        while(true)
        {
            System.out.print("Please input your mark:");
            str=buf.readLine();
            String regEx="[0-9]+";//表示一个或多个数字
            Pattern p=(regEx); //编译成模式
            Matcher m=p.matcher(str); //创建一个匹配器
            boolean rs=m.matches();
            if(rs)a=Integer.parseInt(str);
            if(a<=100&&a>=0)break;
            System.out.println("You inputed a wrong number!\nPlease input again!");
        }
        
        if(a>=90)System.out.println("A");
        else if(a>=75&&a<=98)System.out.println("B");
        else if(a>=60&&a<=74)System.out.println("C");
        else System.out.println("D");    
    }
}
2008-03-22 23:12
lyd8935
Rank: 1
等 级:新手上路
帖 子:219
专家分:0
注 册:2006-5-14
收藏
得分:0 
何必走那么多弯路呢
使用 Character.isDigit(char ch) 这样不是更省事吗?
2008-03-23 10:39
千里冰封
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:灌水之王
等 级:版主
威 望:155
帖 子:28477
专家分:59
注 册:2006-2-26
收藏
得分:0 
楼上的办法也不一定对,因为-1235也是数字,但是-不是数字
所以最好的办法就是
Integer.parseInt()
然后捕获NumberFormatException异常来看是不是数字

可惜不是你,陪我到最后
2008-03-23 13:31
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
......刚刚开始接触.什么都不懂-_-!
先试试.谢谢各位了.
2008-03-23 22:57
luyihuaa5201
Rank: 2
等 级:论坛游民
帖 子:254
专家分:10
注 册:2007-3-25
收藏
得分:0 
用正则表达式
    ^[A-Za-z]+$  //匹配由26个英文字母
   ^[0-9]+$       //匹配数字
2008-03-24 14:13
meteor57
Rank: 1
来 自:银河系
等 级:新手上路
帖 子:267
专家分:0
注 册:2007-9-29
收藏
得分:0 
这两天又看了一下.终于可以了.真高兴~~~
4#中的正规表达式没问题,问题出在int a=0;的初始化上.如果输入的不是数字,但a==0;当然就break了.现把它int a=-1就好啦~~~
昨天看了一下异常处理,也得啦~~~ ^-^
但.....equals();还不行.
是不知道该用哪个类中的equals方法.
找API找到头晕眼花也没找到...
好像觉得用equals();不太好处理...
//异常处理
import *;
public class Hello {
    public static void main(String []args)throws IOException {
        BufferedReader buf;
        buf=new BufferedReader(new InputStreamReader(System.in));
        String str;
        int a=-1;
        while(true)
        {
            System.out.print("Please input your mark:");
            str=buf.readLine();
            try{
                a=Integer.parseInt(str);
            }
            catch(NumberFormatException e){}//前者异常类,e为对象名
            finally{    
                if(a<=100&&a>=0)break;
                System.out.println("You inputed a wrong number!\nPlease input again!");
                System.out.println("");
            }
        }    
        if(a>=90)System.out.println("A");
        else if(a>=75&&a<=98)System.out.println("B");
        else if(a>=60&&a<=74)System.out.println("C");
        else System.out.println("D");    
    }
}
2008-03-26 20:26
快速回复:[求助]如何判断输入是字符是不是数字?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014613 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved