Java Scanner详解:控制台输入与数据处理

5星 · 超过95%的资源 23 下载量 189 浏览量 更新于2024-11-10 收藏 3KB TXT 举报
Java中的`Scanner`类是Java 5引入的一个非常实用的工具,用于从标准输入(如控制台)或文件中读取用户输入或数据。它提供了多种方法来处理不同类型的数据,包括字符、整数、浮点数、字符串等。与C++中的`cin`类似,`Scanner`简化了从控制台获取数据的过程。 首先,创建一个`Scanner`对象通常需要一个输入源,例如`System.in`表示标准输入。以下是一个简单的示例: ```java Scanner reader = new Scanner(System.in); ``` 这个`reader`对象可以调用如`nextDouble()`、`nextInt()`、`nextLine()`等方法来读取不同类型的数据。比如在`Example`类中,程序会提示用户输入一串小数,然后计算这些数字的和与平均值: ```java double sum = 0; int m = 0; while (reader.hasNextDouble()) { double x = reader.nextDouble(); m++; sum += x; } System.out.printf("%d个小数之和为: %f\n", m, sum); System.out.printf("平均值为: %f\n", sum / m); ``` 对于文件输入,`Scanner`同样适用。例如在`readHuman`类中,通过`File`和`FileNotFoundException`处理异常,可以读取文本文件中的信息: ```java private static void readFile(String filename) { try { Scanner fileScanner = new Scanner(new File(filename)); // 读取文件内容并处理 while (fileScanner.hasNextLine()) { String line = fileScanner.nextLine(); // 处理每行数据,如分割字符串等 } fileScanner.close(); // 关闭文件扫描器 } catch (FileNotFoundException e) { e.printStackTrace(); } } ``` `hasNext*`方法可以帮助检查是否有下一个可读取的特定类型的数据,而`next*`方法则实际读取数据。如果输入不符合预期,例如尝试读取非数字字符,`next*`方法将抛出`InputMismatchException`异常。 `java.util.Scanner`是一个强大的工具,它使得在Java中处理用户交互和文件输入变得简单易用。通过熟练掌握其各种方法和异常处理,开发者能够轻松地从控制台或文件中获取和解析数据。