java.util.Scanner[编程语言教程]

获取用户键盘输入

使用hasNext()和next()方法
Scanner scanner = new Scanner(System.in);
System.out.println("请输入……");
if (scanner.hasNext()) {
    System.out.println("输入内容为:" + scanner.next());
}
// IO操作如果不关闭会一直占用资源
scanner.close();

执行结果

请输入……
hello world
输入内容为:hello

hasNext()和next()以空格和换行作为分隔符,换行作为结束符,如果输入内容有空格,每次只能读取一部分内容。

如果将代码改成while循环

Scanner scanner = new Scanner(System.in);
System.out.println("请输入……");
while (scanner.hasNext()) {
    System.out.println("输入内容为:" + scanner.next());
}

执行结果

请输入……
hello world
输入内容为:hello
输入内容为:world

但是程序一直处于运行状态,等待用户继续输入

使用hasNextLine()和nextLine()
Scanner scanner = new Scanner(System.in);
System.out.println("请输入……");
if (scanner.hasNextLine()) {
    System.out.println("输入内容为:" + scanner.nextLine());
}
// IO操作如果不关闭会一直占用资源
scanner.close();

执行结果

请输入……
hello world
输入内容为:hello world

hasNextLine()和nextLine()以换行符作为分隔符和结束符,可以读取空格。

System.in

System是java.lang包下的一个类,in是System下的一个常量,类型为InputStream

public final static InputStream in = null;

Scanner是java.util包下的一个类

Scanner scanner = new Scanner(System.in);

从代码可以看出Scanner类的构造方法可以接收InputStream类型的参数,比如FileInputStream,因此Scanner也可以进行文件的操作,文件操作中,“
”作为换行符。

File file = new File("E:" + File.separator + "1.txt");
// 判断文件是否存在
if (file.exists()) {
    InputStream in = null;
    Scanner scanner = null;
    try {
        in = new FileInputStream(file);
        scanner = new Scanner(in);
        while (scanner.hasNextLine()) {
            System.out.println(scanner.nextLine());
        }
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    } finally {
        try {
            in.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
        scanner.close();
    }
}

关闭IO操作是一个好习惯!

java.util.Scanner

原文:https://www.cnblogs.com/qixioa/p/13630103.html

hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » java.util.Scanner