用户交互Scanner

用户交互Scanner

我们可以通过Scanner类来获取用户的输入。

  • next():

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

    1. 以Enter为结束符,返回的是输入回车之前的所有字符。
    2. 可以有空白。

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

next()

package com.zhen.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 srt = scanner.next(); //程序会等待用户输入数据回车
            System.out.println("输入的内容:"+ srt );
        }
        //方式属于IO流的类,如果不关闭会一直占用资源。
        scanner.close();


    }
}

nextLine()

package com.zhen.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()==true)
        if (scanner.hasNextLine()){
            String str = scanner.nextLine();
            System.out.println("输出为:"+ str);
        }

        scanner.close();

    }

}

  • 正常可不使用if

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

Scanner案例

package com.zhen.scanner;

import java.util.Scanner;

public class Demo04 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        int a = 0;
        float b = 0.0f;

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

        if (scanner.hasNextInt()){
            a = scanner.nextInt();

            System.out.println("你输入的整数是"+ a);
        }else {
            System.out.println("你输入的不是整数");
        }

        System.out.println("====================");
        System.out.println("请输入小数数据");
        if (scanner.hasNextFloat()){
            b = scanner.nextFloat();
            System.out.println("你输入的小数是" + b);
        }else {
            System.out.println("你输入的不是小数!");
        }





        scanner.close();

    }
}

package com.zhen.scanner;

import java.util.Scanner;

public class Demo05 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        double sum = 0;     //和
        double b = 0;       //平均数
        int i = 0;          //计算输入数字的个数
        System.out.println("请输入数字:");

        while (scanner.hasNextDouble()) {

            sum = sum + scanner.nextDouble();

            /*double x = scanner.nextDouble()
            sum = sum + x
            以上是教程使用方法
             */

            i = ++i; //个数
            //可用 i = i + 1

            b = sum / i;  //平均数
            System.out.println(i +"个数总和=" + sum);
            System.out.println(i +"个平均数=" + b);
        }

            System.out.println("你输入的不是整数!");


        scanner.close();
    }


}

posted @ 2022-04-16 21:41  北落君  阅读(27)  评论(0)    收藏  举报