Scanner()类的简单用法

Scanner类

next() 的特点

  1. 一定要读取到有效字符才能结束输入

  2. 如果输入有效字符之前有空格,next() 方法会自动将其去掉

  3. next() 方法得到有效字符之后遇到空格会将其作为分隔符或者结束符

  4. next() 不能得到带有空格的字符串

 

 package com.baike;
 
 import java.util.Scanner;
 
 public class Dome01 {
     public static void main(String[] args) {
 
         //创建一个扫描键盘对象,用于接收键盘数据
         Scanner scanner = new Scanner(System.in);
 
         //提示输入内容
         System.out.println("请输入内容:");
 
         //如果有数据输入
         if(scanner.hasNext()){
 
             //那么就用next()方式接收
             String str = scanner.next();
             System.out.println("输出的内容为:"+str);
        }
         scanner.close();//凡是属于IO流的类,使用完一定记得关闭,不然会浪费硬件资源
        }
 }

 

请输入内容:

Hello World!

输出的内容为:Hello              //遇到空白即结束程序,World!被省略;

nextLine() 的特点

  1. 以Enter作为结束符,nextLine() 方法返回的是输入Enter之前的全部字符

  2. 可以获得空白

 package com.baike;
 
 import java.util.Scanner;
 
 public class Dome02 {
     public static void main(String[] args) {
 
         //创建一个扫描键盘对象,用于接收键盘数据
         Scanner scanner = new Scanner(System.in);
 
         //提示输入内容
         System.out.println("请输入内容:");
 
         //如果有数据输入
         if(scanner.hasNextLine()){
 
             //那么就用next()方式接收
             String str = scanner.nextLine();
             System.out.println("输出的内容为:"+str);
        }
         scanner.close();//凡是属于IO流的类,使用完一定记得关闭,不然会浪费硬件资源
    }
    }

请输入内容:

Hello World!

输出的内容为:Hello

拓展

整数、小数接收与判断

 package com.baike;
 
 import java.util.Scanner;
 
 public class Dome03 {
     public static void main(String[] args) {
         Scanner scanner = new Scanner(System.in);
         int i;
         float f;
         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("输入不是小数");
        }
         scanner.close();
    }
 }

//输出结果(1)

请输入一个整数

10

是整数10

请输入一个小数

10.1

输入是小数10.1

//输出结果(2)

请输入一个整数

10.5

输入不是整数!

请输入一个小数

输入是小数10.5

 

写一个求和及求平均数的程序

 package com.baike;
 
 import java.util.Scanner;
 
 public class Dome04 {
     public static void main(String[] args) {
 
         Scanner scanner = new Scanner(System.in);
 
         double sum = 0;
         int i= 0;
         System.out.println("请输入数字:");
 
         while(scanner.hasNextDouble()){
             double num = scanner.nextDouble();
 
             //统计输入个数
             i++;
 
             //求和
             sum = sum+num;
        }
         System.out.println("输入数字个数为:"+i);
         System.out.println("输入数字的和为:"+sum);
         System.out.println("平均数为:"+(sum/i));
 
 
     scanner.close();
    }
 }

 

请输入数字:

10

20

30

40

x

输入数字个数为:4

输入数字的和为:100.0

平均数为:25.0

Process finished with exit code 0

 

posted @ 2021-02-21 11:46  人间无价  阅读(181)  评论(0)    收藏  举报