Java怎么从键盘输入内容(Java Scanner类的用法详解)

Octavia ·
更新时间:2024-11-15
· 745 次阅读

前言:
Java的输入不像 C 等其他语言那样的简便的输入 scanf
比如输入一个整数型的数 scanf("%d",&a); 这篇文章讲介绍Java怎么从键盘输入内容以及Scanner类的其他用法

Scanner类简介

java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入。接下来,我们将演示一个最简单的数据输入,并通过Scanner类的next ()与 nextLine() 方法来获取输入的字符串.
下面的创建 Scanner 对象的基本语法:

Scanner sc = new Scanner(System.in); next() 简单的输入输出

下面代码是 next() 输入输出最简单的用法:

import java.util.Scanner; public class Scanner_Java { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a =sc.next(); sc.close(); System.out.println(a); } }

那么第 7 行的代码 sc.close(); 的作用是什么呢?
如果没有加这行代码,第 6 行的 sc 下面会有红色的小波浪线,虽然不影响程序的运行,可能会带个你意想不到的小惊喜。
因为 System.in 属于 IO 流,(Scanner 类实例化的时候需要一个InputStream流作为参数)一旦打开,它一直在占用资源,所以使用完后,切记要关闭!

next () 和 nextLine() 的区别

next() 只读取输入到空格。它不能读两个由空格或符号隔开的单词。
nextLine() 读取输入,包括单词之间的空格和除回车以外的所有符号
next()nextLine() 的用法区别如下

import java.util.Scanner; public class Scanner_Java { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a =sc.next(); sc.close(); System.out.println(a); } }

Console:
输入:hello world
输出:hello

import java.util.Scanner; public class Scanner_Java { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String a =sc.nextLine(); sc.close(); System.out.println(a); } }

Console:
输入:hello world
输出:hello world

Scanner的常见用法

Scanner 里常用的方法其实就两类,next*(),用于获取输入,hasNext*()用于判断下一个是否还有输入。
当我们想输入输出整型数的时候,发现把第 6 行的 String 改成 int 竟然报错了!

import java.util.Scanner; public class Scanner_Java { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a =sc.next(); sc.close(); System.out.println(a); } }

通过查阅相关文档如下,发现了 对于输入int 类型的数,Scanner类使用 nextInt() 方法
Scanner类的常见用法
也就是把第 6 行代码改成 int a = sc.nextInt(); 就可以正常运行了。
对于其他类型的数据,改成符合该类型即可。如 nextFloat()nextDouble()

hasNext() 判断下一个是否还有输入

举一个小栗子:

import java.util.Scanner; public class Scanner_Java { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //String a = sc.next(); while (!sc.hasNext("stop")) { String a = sc.next(); System.out.println(a); } System.out.println("------"); sc.close(); } }

当我输入连续的内容,控制台就输出什么,直到我输入 stop 程序才会运行到第 11 行。各位小伙伴可以自己试试。

以上内容就是 Scanner 的一些常见的简单的用法 ,感谢各位小伙伴的阅读,更多用法可以查看 API 文档:传送门


作者:MineChen



scanner JAVA 输入

需要 登录 后方可回复, 如果你还没有账号请 注册新账号