Java Scanner详解:控制台输入与数据处理
5星 · 超过95%的资源 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中处理用户交互和文件输入变得简单易用。通过熟练掌握其各种方法和异常处理,开发者能够轻松地从控制台或文件中获取和解析数据。
2020-08-27 上传
2023-05-26 上传
2023-06-08 上传
2024-09-15 上传
2011-05-19 上传
2023-07-12 上传
2023-04-10 上传
zhaohanning
- 粉丝: 4
- 资源: 1
最新资源
- 基于深度神经网络的DST指数预测.zip
- webpage
- 行业文档-设计装置-一种利用余热烘烤纸管的装置.zip
- word-frequency:小型javascript(节点)应用程序,该应用程序读取文本文件,并按顺序输出文件中20个最常用的单词以及它们的出现频率
- dltmatlab代码-dlt:用于计算离散勒让德变换(DLT)的MATLAB代码
- php-subprocess-example:使用Symfony Process Component和异步php执行的示例
- quick-Status
- .....
- 基于webpack的前后端分离方案.zip
- crossword-composer:文字游戏的约束求解器
- 电力设备与新能源行业新能源车产业链分析:_电动化持续推进,Q1有望淡季不淡.rar
- UnraidScripts
- dltmatlab代码-DLT:http://winsty.net/dlt.html
- ant.tmbundle:TextMate对Ant的支持
- zhaw-ba-online
- CandyMachineClient