用户交互Scanner

用户交互Scanner

一 scanner对象的作用

能够实现程序和人的交互

二 scnner用法

1 用法

需要导包java.util.Scanner

import java.util.Scanner;

通过Scanner类来获取用户的输入

public class Demo01 {
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用next方式接收:");
        if (scanner.hasNext() == true){
            String str = scanner.next();
            System.out.println("输入的内容为: " + str);
        }
        scanner.close();

    }
}

用完scanner 要关闭,节省资源。

scanner.close();

使用hasNext()方式 与 hasNextLine() 方式 来判断是否还有输入的数据

2 next()方式 与 nextLine() 方式 接收键盘输入的数据的区别

2.1 next() :

  1. 一定读取到有效字符后才能结束
  2. 对输入有效字符之前遇到的空白,next()方法会自动将其去掉
  3. 空格之前的有效字符能得到,空格之后的断开
  4. 不能得到带有空格的字符串. 输入hello world 只能得到hello得到(以空白为结束符。)

2.2 nextLine(): 用的多

  1. 以Enter为结束符
  2. 返回的是输入回车之前所有的字符 输入hello world 得到hello world
  3. 可以获得空白

3 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() == true) {
            i = scanner.nextInt();
            System.out.println("输入的整数数据为:" + i);
        }else{
            System.out.println("您输入的数据不是整数数据!");
        }

        System.out.println("请输入小数数据:");
        if (scanner.hasNextFloat() == true){
            f = scanner.nextFloat();
            System.out.println("输入的小数数据为:" + f);
        }else{
            System.out.println("您输入的数据不是小数数据!");
        }
        scanner.close();


        System.out.println("Hello World !");
    }
}

三 注意点:

用完scanner 要关闭,节省资源。
凡是属于IO流的类 如果不关闭会一直占用资源,要养成好习惯用完就关掉。例如scanner
scanner.close();

四 代码演示

import java.util.Scanner;

public class Demo01 {
    public static void main(String[] args){
        //创建一个扫描器对象,用于接受键盘数据
        Scanner scanner = new Scanner(System.in);       //自动补全快捷键 Alt + Enter
        System.out.println("使用next方式接收:");

        //判断用户有没有输入字符串
        //用 scanner.hasNext() 或者 scanner.hasNextLine() 判断是否还有输入的数据
        if (scanner.hasNext() == true){     //默认是true 可以不写 == true  如果还有下一行则执行大括号里的内容
            //用 str 通过 scanner.next()方式 接受用户的输入的字符串   /或者scanner.nextLine()
            String str = scanner.next();
            System.out.println("输入的内容为: " + str);
        }
        //用完scanner 要关闭,节省资源。
        //凡是属于IO流的类 如果不关闭会一直占用资源,要养成好习惯用完就关掉。例如scanner
        scanner.close();
        System.out.println("Hello World !");
    }
}
import java.util.Scanner;

public class Demo02 {
    public static void main(String[] args){
        //创建一个扫描器对象,用于接收键盘数据
        Scanner scanner = new Scanner(System.in);
        System.out.println("使用nextLine方式接收:" );
        //使用scanner.hasNextLine()方法 判断是否还有输入的数据
        if(scanner.hasNextLine() == true){
            //创建一个str对象 通过scanner.nextLine()方式来接受用户输入的字符串
            String str = scanner.nextLine();
            System.out.println("输入的内容为:" + str);
        }
        //关闭
        scanner.close();
        System.out.println("Hello World !");
    }
}
posted @ 2022-04-11 13:37  intelliyu  阅读(26)  评论(0编辑  收藏  举报