#自用#
在Java中,从键盘输入数据通常通过Scanner
类来实现。Scanner
类位于java.util
包中,提供了多种方法来读取不同类型的输入数据。以下是一个基本示例,展示了如何使用Scanner
从键盘读取字符串、整数和浮点数:
java
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// 创建 Scanner 对象
Scanner scanner = new Scanner(System.in);
// 提示用户输入字符串
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
System.out.println("你输入的字符串是:" + str);
// 提示用户输入整数
System.out.print("请输入一个整数:");
int integer = scanner.nextInt();
System.out.println("你输入的整数是:" + integer);
// 提示用户输入浮点数
System.out.print("请输入一个浮点数:");
float floatingPoint = scanner.nextFloat();
System.out.println("你输入的浮点数是:" + floatingPoint);
// 关闭 Scanner
scanner.close();
}
}
代码解释:
-
导入
Scanner
类:
import java.util.Scanner;
需要导入java.util
包中的Scanner
类。
2.创建Scanner
对象:
Scanner scanner = new Scanner(System.in);
使用System.in
作为输入流创建一个新的Scanner
对象。
3.读取字符串
String str = scanner.nextLine();
使用nextLine()
方法读取一行输入(包括空格)
4.读取整数
int integer = scanner.nextInt();
使用nextInt()
方法读取一个整数输入。
5.读取浮点数
float floatingPoint = scanner.nextFloat();
使用nextFloat()
方法读取一个浮点数输入。
6.Scanner
scanner.close();
用完Scanner
后,调用close()
方法关闭它,以释放资源。
注意事项:
- 输入类型:确保输入的类型与预期的类型一致,否则会抛出
InputMismatchException
。 nextLine()
问题:如果在读取整数或浮点数后紧接着读取字符串,可能会遇到nextLine()
方法跳过输入的问题。可以通过在读取整数或浮点数后添加一个额外的nextLine()
调用来解决这个问题。
以下是一个修正版本的代码,处理可能的nextLine()
问题:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// 提示用户输入整数
System.out.print("请输入一个整数:");
int integer = scanner.nextInt();
scanner.nextLine(); // 读取整数后消耗换行符
System.out.println("你输入的整数是:" + integer);
// 提示用户输入字符串
System.out.print("请输入一个字符串:");
String str = scanner.nextLine();
System.out.println("你输入的字符串是:" + str);
// 提示用户输入浮点数
System.out.print("请输入一个浮点数:");
float floatingPoint = scanner.nextFloat();
System.out.println("你输入的浮点数是:" + floatingPoint);
scanner.close();
}
}
通过这种方式,可以确保每次读取操作都能正确处理用户的输入。