Java Scanner 类
Java Scanner 类是 Java 5 中引入的一个实用类,位于 java.util
包下。它用于获取控制台输入,可以解析基本类型和字符串的简单文本扫描器。Scanner 使用分隔符模式将其输入分解为标记,默认情况下该分隔符模式与空格匹配。然而,可以通过指定不同的分隔符来覆盖默认模式。
基本用法
要使用 Scanner 类获取控制台输入,首先需要导入 java.util
包,然后创建一个 Scanner 对象,通常与 System.in
流相关联。以下是一个基本的示例:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入您的名字:");
String name = scanner.nextLine();
System.out.print("请输入您的年龄:");
int age = scanner.nextInt();
System.out.println("欢迎," + name + "! 您的年龄是 " + age + " 岁。");
scanner.close();
}
}
在这个例子中,我们首先创建了一个 Scanner 对象 scanner
,然后使用 nextLine()
方法读取一行文本作为名字,使用 nextInt()
方法读取一个整数作为年龄。最后,我们关闭了 Scanner 对象以释放资源。
方法
Scanner 类提供了多种方法来读取不同类型的数据:
next()
: 读取下一个单词(以空格为分隔符)。nextLine()
: 读取下一行文本。nextInt()
: 读取下一个整数。nextDouble()
: 读取下一个双精度浮点数。nextBoolean()
: 读取下一个布尔值。
此外,Scanner 类还提供了用于检查是否有指定类型输入的方法,如 hasNextInt()
、hasNextDouble()
等。
高级用法
Scanner 类还允许自定义分隔符。可以使用 useDelimiter()
方法来设置新的分隔符模式。例如:
scanner.useDelimiter(",");
这将设置逗号为新的分隔符。
注意事项
在使用 Scanner 类时,需要注意以下几点:
- 当使用
nextInt()
、nextDouble()
等方法后,Scanner 不会读取这些方法后的分隔符(如空格、换行符等),这意味着如果在这些方法后直接调用nextLine()
,它将不会等待用户输入,而是直接读取剩余的换行符。解决这个问题的方法是在这些方法后添加一个nextLine()
调用来“消耗”换行符。 - 在使用完 Scanner 对象后,应该调用
close()
方法来关闭它,以释放相关的系统资源。
结论
Java Scanner 类是一个强大的工具,用于从控制台读取输入。它的灵活性和易用性使其成为处理基本输入任务的理想选择。通过理解其基本用法和高级特性,可以更有效地利用 Scanner 类来满足各种编程需求。