Scanner:用户交互

1、Scanner类

  • Scanner就是Java给我们提供的用于程序和人交互的一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类来获取用户的输入。
  • 基本语法:
    //      创建一个扫描器对象,用于接收键盘数据
            Scanner scanner = new Scanner(System.in);
  • 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用 hasNext() 与 hasNextLine()判断是否还有输入的数据。
    package com.steven.demo;
    
    import java.util.Scanner;
    
    public class ScannerDemo {
    
        public static void main(String[] args) {
    
    //      创建一个扫描器对象,用于接收键盘数据
            Scanner scanner = new Scanner(System.in);
    
    //      使用next方法接收
            String strNext = scanner.next();
    //      判断用户有没有输入字符串;scanner.hasNext()完整的写法是scanner.hasNext()==True;Java中默认把后面的省略。
            if(scanner.hasNext()){
                System.out.println("strNext:" + strNext);
            }
    
    /*//      使用nextLine方法接收
            String strNextLine = scanner.nextLine();
    //      判断用户有没有输入字符串
            if (scanner.hasNextLine()){
                System.out.println("strNextLine:" + strNextLine);
            }*/
    
    //      凡是属于IO流的类如果不关闭,会一直使用资源,要养成好的习惯:用完就关掉。
            scanner.close();
        }
    }

输出结果:

Hello word

strNext:Hello
strNextLine:Hello word

通过输出结果可以看出,输入的字符串一样,但是next() 和 nextLine() 方法接收的字符串不一样。

2、next() 和 nextLine() 区别

  • next():

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

  1. 以Enter作为结束符,也就是说nextLine()方法返回的是输入回车之前的所有字符;
  2. 可以获得空白;
原文地址:https://www.cnblogs.com/stevenx/p/12951459.html