A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黄坚声 中级黑马   /  2012-5-11 11:26  /  1180 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

用next();接收的都是字符串啊
//让用户在控制台输入的只能是数字类型的,其他的都不通过。
        public static void function(){
                Scanner sc=new Scanner(System.in);
                System.out.println("please print a unmber!");
                Object x=null;
                try{               
                        do{
                                x=sc.next();
                                //System.out.println(Class.forName("java.lang.Integer").isInstance(x));
                                if(!Class.forName("java.lang.Integer").isInstance(x))
                                System.out.println("请输入匹配数字!");                       
                          }while (!Class.forName("java.lang.Integer").isInstance(x));               
                }catch(Exception e){
                        e.printStackTrace();
                }


这个应该怎么改啊?

3 个回复

倒序浏览
        public static void main(String[] args) {
                Scanner sc=new Scanner(System.in);
        System.out.println("please print a unmber!");
        System.out.println("请输入");
       try {
                int  oo=sc.nextInt();
        } catch (Exception e) {
                System.out.println("请输入一个数字");
        }
      


        }
回复 使用道具 举报
int num=sc.nextInt();
回复 使用道具 举报
也可以这样将接收过来的数据转换为Integer对象,通过Integer中parseInt将输入的信息转换成Integer对象,如果出现异常则在捕获异常处理时提示请输入数字。如下:

try  {
         x=sc.next();
} catch (Exception e) {
         throw new RuntimeException("请输入数字。");
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马