Java中用Scanner读取控制台输入需先导入java.util.Scanner并以System.in创建实例;按数据类型选nextLine()、nextInt()等方法,注意nextInt()后需用nextLine()清除换行符;使用完毕应调用sc.close()释放资源。

Java 中用 Scanner 类读取控制台输入,核心是创建 Scanner 对象并调用对应方法(如 nextLine()、nextInt())获取用户输入的数据。
导入 Scanner 类并创建对象
Scanner 类在 java.util 包中,必须先导入;然后用 System.in 作为参数构造 Scanner 实例:
- import java.util.Scanner;
- Scanner sc = new Scanner(System.in);
根据数据类型选择合适的方法
不同输入类型要用不同方法,否则可能报错或跳过输入:
- 读整数:
int age = sc.nextInt(); - 读小数:
double price = sc.nextDouble(); - 读一行字符串(含空格):
String name = sc.nextLine(); - 读单个单词(遇空格/换行停止):
String word = sc.next();
注意:nextInt() 等方法不会消费换行符,紧接着调用 nextLine() 会直接返回空字符串。解决办法是在 nextInt() 后加一句 sc.nextLine(); 消掉残留换行符。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
立即学习“Java免费学习笔记(深入)”;
完整示例:读取姓名和年龄
以下代码安全读取字符串和整数:
import java.util.Scanner;
public class InputDemo {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = sc.nextLine(); // 读整行
System.out.print("请输入年龄:");
int age = sc.nextInt();
sc.nextLine(); // 清除换行符,避免影响后续 nextLine()
System.out.println("姓名:" + name + ",年龄:" + age);
sc.close(); // 使用完建议关闭
}
}
关闭 Scanner 防止资源泄漏
Scanner 关联了系统输入流,长期运行的程序中不关闭可能导致资源占用。调用 sc.close() 是良好习惯,但注意:关闭后不能再用该 Scanner 读取输入。

















