1.Scanner类

Scanner类

1.next方式

package com.lin.study.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方式接收: Hello world! 输出的内容为: Hello

Process finished with exit code 0

结论:next()不能得到带有空格的字符串,有效字符之前遇到的空白,next也会自动将其去掉。

2.nextLine方式

package com.lin.study.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()){
           //有输入就使用NextLine方式接收
           String str = scanner.nextLine();
           System.out.println("输出的内容为: " + str);
      }
       scanner.close();
  }

}

运行结果:

使用nextline方式接收: Helllo world! 输出的内容为: Helllo world!

Process finished with exit code 0

结论:nextLine以回车作为结束符。

3.不使用if判断

package com.lin.study.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();
  }
}

运行结果:

请输入数据: Hello world! 输出的内容为: Hello world!

Process finished with exit code 0

4.Scanner进阶

4.1

package com.lin.study.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;

       //1.输入数据
       System.out.println("请输入整数数据: ");

       //如果。。。那么。。。
       if(scanner.hasNextInt()){
           i = scanner.nextInt();
           System.out.println("您输入的整数数据为: " + i);
      }else{
           System.out.println("您输入的不是整数数据!");
      }

       //2.第二次输入数据
       System.out.println("请输入小数数据: ");

       //如果。。。那么。。。
       if(scanner.hasNextFloat()){
           f = scanner.nextFloat();
           System.out.println("您输入的小数数据为: " + f);
      }else{
           System.out.println("您输入的不是小数数据!");
      }

       scanner.close();
  }
}

运行结果: 请输入整数数据: 1 您输入的整数数据为: 1 请输入小数数据: 1.1 您输入的小数数据为: 1.1

Process finished with exit code 0

4.2

输入多个数字,并求其平均数,每输入一个数字回车确认,最后用非数字结束输入 并输出执行结果。

package com.lin.study.scanner;

import java.util.Scanner;

public class Demo05 {
   //输入多个数字,并求其平均数,每输入一个数字回车确认,最后用非数字结束输入 并输出执行结果。
   public static void main(String[] args) {
       Scanner scanner = new Scanner(System.in);
       System.out.println("程序已启动,请您输入数据: ");

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

       //通过循环判断是否还有输入,并在循环中进行求和与统计
       while(scanner.hasNextDouble()){
           double x = scanner.nextDouble();
           m++;
           sum = sum + x;
           System.out.println("这是您输入的第 " + m + "个数据,当前总和sum= " + sum);
      }

       System.out.println("程序结束,总和sum为: " + sum);
       System.out.println("平均值为: " + (sum/m));

       //关闭流
       scanner.close();
  }
}

运行结果: 程序已启动,请您输入数据: 20 这是您输入的第 1个数据,当前总和sum= 20.0 20 这是您输入的第 2个数据,当前总和sum= 40.0 20 这是您输入的第 3个数据,当前总和sum= 60.0 20 这是您输入的第 4个数据,当前总和sum= 80.0 20 这是您输入的第 5个数据,当前总和sum= 100.0 x 程序结束,总和sum为: 100.0 平均值为: 20.0

Process finished with exit code 0

posted @ 2021-10-06 21:59  木木9_9  阅读(407)  评论(0)    收藏  举报