JavaSE

三、Scanner用户交互

  1. Demo1:最基本的scanner用法
       public static void main(String[] args) {
            //创建一个扫描器对象,用于接受键盘数据
            Scanner scanner = new Scanner(System.in);//new Scanner(System.in);alt+enter
            System.out.println("请输入(使用next方式接收):");

                //使用next方式接收
            String str = scanner.next();//程序会一直等待用户输入
            System.out.println("输入的内容为:"+str);

            //最后记得关闭scanner,凡是属于io流的类如果不关闭会一直占用资源,要养成好习惯用完就关闭
            scanner.close();
       }
  1. Demo2:进阶一些用scanner方法nextLine
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);
            System.out.println("请输入(使用nextLine方式接收):");
  
            String str = scanner.nextLine();
            System.out.println("输入的内容为:"+str);
  
            //用完还是记得关闭
            scanner.close();
         
            
            /*
            总结一下:
            next和nextLine的区别:next以空白结束符,nextLine以回车为结束符
            例如:我打1 2 3,next只会输出1,nextLine就会输出1 2 3
             */
        }
  1. Demo4:scanner进阶用法:scanner.hasNextInt/scanner.hasNextFloat()
        public static void main(String[] args) {
            Scanner scanner = new Scanner(System.in);

            //从键盘接收数据
            int i = 0;
            float f = 0.0f;

            System.out.println("请输入整数:");
            //如果...那么
            if(scanner.hasNextInt()==true){

                i = scanner.nextInt();
                System.out.println("整数数据:"+i);
            }else{
                System.out.println("你输入的不是整数数据");
            }


            System.out.println("请输入小数:");
            if(scanner.hasNextFloat()==true){

                f = scanner.nextFloat();
                System.out.println("小数数据:"+f);
            }else{
                System.out.println("你输入的不是小数数据");
            }

            scanner.close();
        }

        /*
        总结下:
        ①new下scanner
        ②定义下属性
        ③两个判断:用上scanner.hasNextInt/scanner.hasNextFloat()方法
        ④if中:接收下,用上scanner.nextInt()/scanner.nextFloat()方法
        ⑤if...else
        ⑥关闭
         */

  1. Demo5:写一个计算输入数字总和的交互代码
      //我们可以输入多个数字,并求其总和和平均数,没输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
        public static void main(String[] args) {

            Scanner scanner = new Scanner(System.in);

            //和
            double sum = 0;
            //计算输入了多少个数字
            int m = 0;

            System.out.println("请输入数字:");
            //通过循环判断是否还有输入,并在里面对每一个进行求和和统计
            while (scanner.hasNextDouble()==true){
                double x = scanner.nextDouble();
                m = m +1 ;//或者写m++
                sum =sum + x;//或者写sum+ = x
                System.out.println("你输入了第"+m+"个数据,然后当前的结果为"+sum);
            }

            System.out.println(m+"个数的和为"+sum);
            System.out.println(m+"个数的平均值是"+(sum/m));

            scanner.close();
        }

             /*总结:
            ①while循环用起来
            ②初始定义,然后累计加总
             */