美文网首页
Java-API-Scanner

Java-API-Scanner

作者: 浮桥小麦 | 来源:发表于2017-06-09 23:23 被阅读57次
1.基本用法
 //创建Scanner对象,使用其中一个构造方法
        Scanner sc = new Scanner(System.in);//键盘录入
        int i = sc.nextInt();//键盘录入一个整数存储在i中
        System.out.println(i);
        //这里只能录入一个整数,如果输入的是其它的,会报错
      /*
      * java.util.InputMismatchException:这个错误,我们可以直接复制java.util后面的Input类
      * 在API中去搜索,结果是:
      * 由 Scanner抛出,表示 Scanner到的令牌与预期类型的模式不匹配,或令牌超出预期类型的范围。
      **/

2.hasNextInt() :判断录入的是否为Int型(hasNextXXX就是判断这个录入类型的)
//如果我们就想只能输入Int值,就需要调用另一个方法
        //这个方法会判断用户录入的是否超出了Int的范围
        Scanner sc = new Scanner(System.in);
        if (sc.hasNextInt()){
            //我们在保存这个录入之前,就判断这个录入是否是整数
            int i = sc.nextInt();
            System.out.println(i);
        }else{
            System.out.println("您输入的类型有误"); 
        }
3.输入多个整数和多个字符串
 //输入多个整数
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int i = sc.nextInt();
        System.out.println("请输入第二个整数:");
        int j = sc.nextInt();
        int sum = i + j;
        System.out.println("i+j=" + sum);

// public String nextLine():就是将录入的所有东西都以字符串保存
 Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个字符串:");
        String str1 = sc.nextLine();
        System.out.println("请输入第二个字符串:");
        String str2 = sc.nextLine();
        System.out.println("str1="+str1+"//str2="+str2);
4.同时录入字符串和整数会出现的问题
 Scanner sc = new Scanner(System.in);
        System.out.println("请输入第一个整数:");
        int i = sc.nextInt();
        System.out.println("请输入第二个字符串:");
        String str2 = sc.nextLine();
        System.out.println("str1=" +i+ ", str2="+str2);
     //按上面的代码写下来,我们在执行到"请输入第二个字符串"就会跳过str2 = sc.nextLine()方法
        //直接执行下面的打印方法
       /*
       * 分析问题原因:
       * nextInt()是键盘录入整数的方法,当我们录入10的时候,
       * 其实在键盘上录入的是10和\r\n,(\r\n:就是我们输入完10后,输入的回车符)
       *nextInt()方法只获取10就结束了
       * nextLine()方法是获取字符串的方法,可以接受任意类型
       * 但是其通过\r\n来结束一行录入,遇到\r\n就证明你的输入结束
       *所以上面我们输入了10和\r\n,所以nextLine()遇到了,就直接结束了
       * */
#解决办法很简单—可以将所有的输入都用nextLine(),到时再转换类型就好了


相关文章

  • Java-API-Scanner

    1.基本用法 2.hasNextInt() :判断录入的是否为Int型(hasNextXXX就是判断这个录入类型的...

网友评论

      本文标题:Java-API-Scanner

      本文链接:https://www.haomeiwen.com/subject/kqofqxtx.html