黑马程序员技术交流社区

标题: 这个应该怎么改啊? [打印本页]

作者: 黄坚声    时间: 2012-5-11 11:26
标题: 这个应该怎么改啊?
用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();
                }


这个应该怎么改啊?
作者: 李啸    时间: 2012-5-11 11:42
        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("请输入一个数字");
        }
      


        }
作者: 小小企鹅    时间: 2012-5-11 11:57
int num=sc.nextInt();
作者: 杨鹏    时间: 2012-5-11 12:28
也可以这样将接收过来的数据转换为Integer对象,通过Integer中parseInt将输入的信息转换成Integer对象,如果出现异常则在捕获异常处理时提示请输入数字。如下:

try  {
         x=sc.next();
} catch (Exception e) {
         throw new RuntimeException("请输入数字。");
}




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2