java Day06-1

Scanner对象

  1. 可以通过Scanner类来获取用户输入

  2. 基本语法:

    Scanner s = new Scanner(System.in);

  3. 通过Scanner类的next()与nextLine()方法来获取输入的字符串,在读取前我们一般需要 使用hasNext()与hasNextLine()判断是否还有输入的数据。

    • 案例next()

      package com.wei.scanner;
      
      import java.util.Scanner;
      
      public class Demo01 {
      
          public static void main(String[] args) {
      
              //创建一个扫描器对象,用于接收键盘数据
              Scanner scanner = new Scanner(System.in);
              System.out.println("使用next方法接收:");
      
              //判断一你过户有没有输入字符串
              if (scanner.hasNext()) {
                  //使用next方式接收
                  String str = scanner.next(); //程序会等待用户输入完毕
                  System.out.println("输出内容为"+str);
              }
              //凡是属于IO流(输入输出流)的类如果不关闭会一直占用资源,要养成好习惯用完就关掉
              scanner.close();
          }
      }
      
      
    • 答案next()

      使用next方法接收:
      hello world    (是键盘输入进去的)
      输出内容为hello
      
    • 案例nextLine()

      package com.wei.scanner;
      
      import java.util.Scanner;
      
      public class Demo02 {
          public static void main(String[] args) {
              //从键盘接收数据
              Scanner scanner = new Scanner(System.in);
      
              System.out.println("使用nextLine方式接收");
      
              //判断是否还有输入
              if (scanner.hasNextLine()){
                  String str = scanner.nextLine();
                  System.out.println("输入内容为:" + str);
              }
              scanner.close();
          }
      }
      
      
    • 答案nextLine()

      使用nextLine方式接收
      Hello world!
      输入内容为:Hello world!

    • 两者的区别

      1. next()

        • 一定要读取到有效字符后才可以结束输入
        • 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
        • 只有输入有效字符后才将其后面输入的空白作为分隔符或者结束符
        • next()不能得到带有空格的字符串
      2. nextline()

        • 以Enter为结束符,也就是说nextLine()方法返回的是输入回车之前所有字符
        • 可以获取空白
      3. 测试

        • 案例

          package com.wei.scanner;
          
          import java.util.Scanner;
          
          public class Demo03 {
              public static void main(String[] args) {
                  //从键盘接收数据
                  Scanner scanner = new Scanner(System.in);
          
                  System.out.println("请输入数据:");
          
                  String str = scanner.nextLine();
          
                  System.out.println("输入内容为:" + str);
          
                  scanner.close();
              }
          }
          
        • 答案

          请输入数据:
          欢迎学习狂神说Java 欢迎大家来到线下学习
          输入内容为:欢迎学习狂神说Java 欢迎大家来到线下学习

      4. 其他用法

        • 案例一

          package com.wei.scanner;
          
          import java.util.Scanner;
          
          public class Demo04 {
              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()) {
                      i = scanner.nextInt();
                      System.out.println("整数数据" + i);
                  }else {
                      System.out.println("输入的不是整数数据!");
                  }
          
                  System.out.println("请输入小数:");
          
                  //如果...那么
                  if (scanner.hasNextFloat()) {
                      f = scanner.nextFloat();
                      System.out.println("小数数据:" + f);
                  }else {
                      System.out.println("输入的不是小数数据!");
                  }
              }
          }
          
          
        • 答案一

          1. 请输入整数:
            10 (键盘输入)
            整数数据10
            请输入小数:
            1.1(键盘输入)
            小数数据:1.1
          2. 请输入整数:
            10.1(键盘输入)
            输入的不是整数数据!
            请输入小数:
            小数数据:10.1
        • 案例

          package com.wei.scanner;
          
          import java.util.Scanner;
          
          public class Demo05 {
              public static void main(String[] args) {
                  //我们要输入多个数字,并求其综合与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
                  Scanner scanner = new Scanner(System.in);
          
          
                  //和
                  double sum = 0;
                  //计算输入了多少个数字
                  int m = 0;
          
                  System.out.println("请输入数字:");
                  ////通过魂环判断是否还有输入,并在里面对每一次进行求和和统计
                  while (scanner.hasNextDouble()){
                      double x = scanner.nextDouble();
                      m = m + 1;//m++
                      sum = sum + x;
                  }
                  System.out.println(m + "个数的和为 " + sum);
                  System.out.println(m + "个数的平均值是 " +(sum / m));
          
          
                  scanner.close();
              }
          }
          
          
        • 答案

          请输入数字
          10(键盘输入)
          20(键盘输入)
          30(键盘输入)
          40(键盘输入)
          X(键盘输入)
          4个数的和为 100.0
          4个数的平均值是 25.0

        • 基于上一个案例

          package com.wei.scanner;
          
          import java.util.Scanner;
          
          public class Demo05 {
              public static void main(String[] args) {
                  //我们要输入多个数字,并求其综合与平均数,每输入一个数字用回车确认,通过输入非数字来结束输入并输出执行结果
                  Scanner scanner = new Scanner(System.in);
          
          
                  //和
                  double sum = 0;
                  //计算输入了多少个数字
                  int m = 0;
          
                  System.out.println("请输入数字:");
                  ////通过魂环判断是否还有输入,并在里面对每一次进行求和和统计
                  while (scanner.hasNextDouble()){
                      double x = scanner.nextDouble();
                      m = m + 1;//m++
                      sum = sum + x;
                      System.out.println("你输入了第"+m+"个数据,然后当前结果sum="+sum);
                  }
                  System.out.println(m + "个数的和为 " + sum);
                  System.out.println(m + "个数的平均值是 " +(sum / m));
          
          
                  scanner.close();
              }
          }
          
          
        • 答案

          请输入数字:
          10(键盘输入)
          你输入了第1个数据,然后当前结果sum=10.0
          20(键盘输入)
          你输入了第2个数据,然后当前结果sum=30.0
          asd(键盘输入)
          2个数的和为 30.0
          2个数的平均值是 15.0

posted @ 2026-03-31 15:04  固执的小织女  阅读(2)  评论(0)    收藏  举报