Java 用户输入(Scanner)
简介
Scanner
类用于获取用户输入,它位于 java.util
包中。
使用 Scanner 类
要使用 Scanner
类,请执行以下步骤:
-
导入
java.util.Scanner
包。 -
创建一个
Scanner
对象,并将其初始化为System.in
。 -
使用
Scanner
对象的方法读取用户输入。
示例
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的姓名:");
String name = scanner.nextLine();
System.out.println("请输入您的年龄:");
int age = scanner.nextInt();
System.out.println("您的姓名是:" + name);
System.out.println("您的年龄是:" + age);
}
}
读取不同类型的数据
Scanner
类提供了各种方法来读取不同类型的数据:
方法 | 描述
---|---nextBoolean()
| 读取布尔值nextByte()
| 读取字节值nextDouble()
| 读取双精度浮点数nextFloat()
| 读取单精度浮点数nextInt()
| 读取整型值nextLine()
| 读取字符串nextLong()
| 读取长整型值nextShort()
| 读取短整型值
示例
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("请输入您的姓名:");
String name = scanner.nextLine();
System.out.println("请输入您的年龄:");
int age = scanner.nextInt();
System.out.println("请输入您的身高:");
double height = scanner.nextDouble();
System.out.println("您的姓名是:" + name);
System.out.println("您的年龄是:" + age);
System.out.println("您的身高是:" + height);
}
}
处理错误输入
如果您尝试读取与预期类型不同的数据,则会抛出 InputMismatchException
异常。您可以使用 try-catch
块来处理此异常。
示例
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
try {
System.out.println("请输入您的年龄:");
int age = scanner.nextInt();
System.out.println("您的年龄是:" + age);
} catch (InputMismatchException e) {
System.out.println("您输入的年龄格式不正确。");
}
}
}
Scanner
类是获取用户输入的便捷工具。它提供了各种方法来读取不同类型的数据,并可以处理错误输入。
Java 日期和时间
Java 日期和时间 API
Java 没有内置的 Date
类,但我们可以导入 java.time
包来使用日期和时间 API。该包包含许多日期和时间类,例如:
| 类 | 描述 |
|---|---|
| LocalDate
| 表示日期(年、月、日(yyyy-MM-dd)) |
| LocalTime
| 表示时间(小时、分钟、秒和纳秒(HH-mm-ss-ns)) |
| LocalDateTime
| 表示日期和时间(yyyy-MM-dd-HH-mm-ss-ns) |
| DateTimeFormatter
| 日期时间对象的显示和解析格式化程序 |
显示当前日期
要显示当前日期,请导入 java.time.LocalDate
类,并使用其 now()
方法:
import java.time.LocalDate; // 导入 LocalDate 类
public class Main {
public static void main(String[] args) {
LocalDate myObj = LocalDate.now(); // 创建一个日期对象
System.out.println(myObj); // 显示当前日期
}
}
输出将是:
2023-12-20
显示当前时间
要显示当前时间(小时、分钟、秒和纳秒),请导入 java.time.LocalTime
类,并使用其 now()
方法:
import java.time.LocalTime; // 导入 LocalTime 类
public class Main {
public static void main(String[] args) {
LocalTime myObj = LocalTime.now();
System.out.println(myObj);
}
}
输出将是:
16:34:36.910624
显示当前日期和时间
要显示当前日期和时间,请导入 java.time.LocalDateTime
类,并使用其 now()
方法:
import java.time.LocalDateTime; // 导入 LocalDateTime 类
public class Main {
public static void main(String[] args) {
LocalDateTime myObj = LocalDateTime.now();
System.out.println(myObj);
}
}
输出将是:
2023-12-20T16:34:36.910771
格式化日期和时间
上面示例中的"T"用于分隔日期和时间。您可以使用同一包中的 DateTimeFormatter
类的 ofPattern()
方法来格式化或解析日期时间对象。以下示例将从日期时间中删除"T"和纳秒:
import java.time.LocalDateTime; // 导入 LocalDateTime 类
import java.time.format.DateTimeFormatter; // 导入 DateTimeFormatter 类
public class Main {
public static void main(String[] args) {
LocalDateTime myDateObj = LocalDateTime.now();
System.out.println("格式化前:" + myDateObj);
DateTimeFormatter myFormatObj = DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss");
String formattedDate = myDateObj.format(myFormatObj);
System.out.println("格式化后:" + formattedDate);
}
}
输出将是:
格式化前: 2023-12-20T16:34:36.910287
格式化后: 20-12-2023 16:34:36
ofPattern()
方法接受各种值,您可以使用它们以不同的格式显示日期和时间。例如:
| 值 | 示例 |
|---|---|
| yyyy-MM-dd
| "1988-09-29" |
| dd/MM/yyyy
| "29/09/1988" |
| dd-MMM-yyyy
| "29-Sep-1988" |
| E, MMM dd yyyy
| "Thu, Sep 29 1988" |
Java 日期和时间 API 提供了多种类和方法来处理日期和时间。您可以使用这些工具来显示、格式化和解析日期和时间数据。