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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 王骥 中级黑马   /  2015-6-20 11:56  /  662 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

Scanner的注意事项
        以后在我们使用Scanner进行键盘输入的时候需要注意一个问题
        什么问题呢?
                   如果我先后在键盘上输入字符串和整型的数据的话是不会出现问题的
                   但先后在键盘上输入整型和字符串的数据的时候,就会出现问题

        例:
           Scanner sc = new Scanner(String[] args);

           System.out.println("请输入您的姓名:");
           String name = sc.nextLine();
           System.out.println("请输入您的年龄:");
           int age = sc.nextInt();
          
           System.out.println("您输入的姓名为:"+name);
           System.out.println("您输入的年龄为:"+age);

           由于这里面是先输入的是字符串后输入的是数字,所以不会出现问题

           Scanner sc = new Scanner(String[] args);

           System.out.println("请输入您的年龄:");
           int age = sc.nextInt();
           System.out.println("请输入您的年龄:");
           String name = sc.nextLine();
          
           System.out.println("您输入的姓名为:"+name);
           System.out.println("您输入的年龄为:"+age);

           由于这里面是先输入的是数字然后再输入字符串,就会出现问题,因为在输入第二个字符串数据之前,已经把回车当做一个字符串输入了,所以才会出现字符串录入没进去

           解决方案:
           Scanner sc1 = new Scanner(String[] args);
           System.out.println("请输入您的年龄:");
           int age = sc1.nextInt();

           Scanner sc2 = new Scanner(String[] args);
           System.out.println("请输入您的年龄:");
           String name = sc2.nextLine();
          
           System.out.println("您输入的姓名为:"+name);
           System.out.println("您输入的年龄为:"+age);

           第二种方案是先用字符串接受数字,然后把字符串转换成int类型,由于我们还没学习,先不做说明

评分

参与人数 1技术分 +1 收起 理由
黑色柳丁 + 1 恩,不错,基本很少有人注意到这个问题。所以.

查看全部评分

10 个回复

倒序浏览
学习了......
回复 使用道具 举报
涨姿势列
回复 使用道具 举报
Scanner sc = new Scanner(System.in);行不行啊
回复 使用道具 举报
学习了,以后使用还是要注意点儿
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
学习了......
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
XXXK 中级黑马 2015-6-21 12:41:08
9#
谢谢分享,尽管我现在看不懂
回复 使用道具 举报
值得学习        
回复 使用道具 举报
谢谢分享
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马