javaSE——流程控制——用户交互Scanner

Scanner对象

  • 用来获取用户输入。
  • java.util.Scanner是Java5的新特性
  • 创建的基本语法:
Scanner scanner = new Scanner(System.in);

...
    
scanner.close();
  • 通过Scanner类的next()nextLine()方法获取输入的字符串

    • 在读取前我们一般需要使用hasNext()hasNextLine()判断是否还有输入的数据。
  • next():

    • 一定要读到有效字符后才可以结束输入
    • 一遇到空白符号就作为结束符
    • next()不能得到带有空格的字符串
  • nextLine():

    • Enter为结束符

    • 可以获得带空白字符的字符串

      package com.kuang.scanner;
      
      import java.util.Scanner;
      
      public class Demo01 {
          public static void main(String[] args) {
              
              //创建一个扫描器对象,用于接收键盘数据
              Scanner scanner = new Scanner(System.in);
      
              System.out.println("使用next方式接收:");//输入hello world
      
              //判断用户有没有输入字符串
              //如果输入了
              if (scanner.hasNext()) {
                  //使用next方式接收
                  String str = scanner.next();
                  System.out.println("输出的内容为:" + str);//输出hello
              }
              
              //凡是属于IO流的类如果不关闭会一直占用资源,要养成良好习惯用完关掉
              scanner.close();
          }
      }
      
      
      package com.kuang.scanner;
      
      import java.util.Scanner;
      
      public class Demo02 {
          public static void main(String[] args) {
              
              Scanner scanner = new Scanner(System.in);
      
              System.out.println("使用nextLine方式接收:");//输入hello world
      
              if (scanner.hasNext()) {
                  String str = scanner.nextLine();
                  System.out.println("输出的内容为:" + str);//输出hello world
              }
              
              scanner.close();
          }
      }
      
      
      、、其实这个demo用不到if,前面写上if也只是为了介绍下if这种判断用法
      
      package com.kuang.scanner;
      
      import java.util.Scanner;
      
      public class Demo03 {
          public static void main(String[] args) {
              
              Scanner scanner = new Scanner(System.in);
      
              System.out.println("请输入:");//输入hello world
      
              
              String str = scanner.nextLine();
              System.out.println("输出的内容为:" + str);//输出hello world
            
              
              scanner.close();
          }
      }
      
      

进阶

package com.kuang.scanner;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        //我们可以输入多个数字,并求其总和与平均数,每输入一个数字用回车确认;通过输入非doble来结束输入并输出最终结果
        Scanner scanner = new Scanner(System.in);

        //和
        double sum = 0;
        //计数器
        int m = 0;

        // 通过循环判断是否还有输入,并在里面对每一次进行求和和展示
        // 循环终止条件:没有输入double类型数字,比如'x'
        while (scanner.hasNextDouble()) {
            double x = scanner.nextDouble();

            sum += x;
            m++;
            System.out.println("你输入了第" + m + "个数据,当前结果sum=" + sum);
        }

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

        scanner.close();

    }
}

posted @ 2022-05-10 16:17  群青Bleu  阅读(22)  评论(0编辑  收藏  举报