资源说明:前言:
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()
在Java编程中,从键盘获取用户输入是一项基本操作。与C等语言不同,Java没有像`scanf`这样的简便方法直接获取输入。Java引入了`java.util.Scanner`类,自Java 5版本开始引入,用于方便地处理用户输入。本文将详细介绍如何使用Scanner类以及其常用方法。
创建Scanner对象的基本语法是:
```java
Scanner sc = new Scanner(System.in);
```
这里的`System.in`代表标准输入流,通常对应于键盘输入。
### 简单的输入输出
使用Scanner类获取字符串的简单示例如下:
```java
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()`是必要的,因为它可以关闭输入流并释放资源。如果不关闭,虽然程序仍能运行,但可能导致资源泄露。
### `next()`与`nextLine()`的区别
`next()`方法读取输入直到遇到空格、制表符或换行符。如果输入是"hello world",`next()`只会读取"hello"。而`nextLine()`会读取整行,包括空格,因此对于相同的输入,`nextLine()`会输出"hello world"。
### Scanner的常见用法
Scanner类提供了多种获取不同类型输入的方法,如`nextInt()`、`nextDouble()`等。例如,如果要读取整数,应使用`nextInt()`:
```java
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
```
对于其他数据类型,如浮点数,可以使用`nextFloat()`,双精度数使用`nextDouble()`。
此外,`hasNext*()`系列方法用于判断是否有更多输入。例如,`hasNext()`检查是否还有更多输入,`hasNextInt()`检查是否可以读取到整数。以下是一个例子,展示了如何在用户输入"stop"时结束循环:
```java
Scanner sc = new Scanner(System.in);
while (!sc.hasNext("stop")) {
String a = sc.next();
System.out.println(a);
}
```
在这个例子中,只要用户不输入"stop",就会持续读取并打印输入的单词。
### 更多Scanner方法
Scanner类还提供了其他方法,如`nextBoolean()`用于读取布尔值,`nextBigInteger()`用于读取大整数,`nextBigDecimal()`用于读取大数等。对于非数字的复杂输入,如日期和时间,可以使用`nextDateTime()`等方法。
Java中的Scanner类为处理用户输入提供了一套灵活且强大的工具。开发者可以根据需求选择适当的方法,以实现对不同类型数据的读取。正确理解和使用Scanner类,是编写交互式Java程序的关键。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。