Java 用户输入(Scanner)

简介

Scanner 类用于获取用户输入,它位于 java.util 包中。

使用 Scanner 类

要使用 Scanner 类,请执行以下步骤:

  1. 导入 java.util.Scanner 包。
  2. 创建一个 Scanner 对象,并将其初始化为 System.in
  3. 使用 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 提供了多种类和方法来处理日期和时间。您可以使用这些工具来显示、格式化和解析日期和时间数据。

最后

为了方便其他设备和平台的小伙伴观看往期文章:

微信公众号搜索:Let us Coding,关注后即可获取最新文章推送

看完如果觉得有帮助,欢迎 点赞、收藏、关注

Java 日期和时间 API:实用技巧与示例 - 轻松处理日期和时间的更多相关文章

  1. Java日期时间API系列42-----一种高效的中文日期格式化和解析方法

    中文日期(2021年09月11日 和 二〇二一年九月十一日 )在生活中经常用到,2021年09月11日很好处理直接使用模板:yyyy年MM月dd日:二〇二一年九月十一日比较不好处理,需要每个数字进行转 ...

  2. 新手必学的java报表开发工具FineReport实用技巧

    1.在制作模板时,如何将报表中的值传递到超链接网页呢? 在项目中以frame方法把F1.CPT放到项目的页面中,对F1.CPT做网络报表超链接F2.CPT,然后在F2.cpt页面中,做个超链接的网页, ...

  3. java 数据结构(三):java常用类 三 日期时间API

    JDK 8之前日期时间API 1.获取系统当前时间:System类中的currentTimeMillis()long time = System.currentTimeMillis();//返回当前时 ...

  4. Java8 日期与时间 API

    在 Java 中,想处理日期和时间时,通常都会选用 java.util.Date 这个类进行处理.不过不知道是设计者在当时没想好还是其它原因,在 Java 1.0 中引入的这个类,大部分的 API 在 ...

  5. 全面解析Java日期时间API

    时区 GMT(Greenwich Mean Time):格林尼治时间,格林尼治标准时间的正午是指当太阳横穿格林尼治子午线时(也就是在格林尼治上空最高点时)的时间. UTC(Universal Time ...

  6. [转载]Java 8 日期&时间 API

    Java 8 日期和时间 声明 本文转自http://www.journaldev.com/2800/java-8-date-localdate-localdatetime-instant,以mark ...

  7. Java中日期时间API小结

    Java中为处理日期和时间提供了大量的API,确实有把一件简单的事情搞复杂的嫌疑,各种类:Date Time Timestamp Calendar...,但是如果能够看到时间处理的本质就可以轻松hol ...

  8. 计算机程序的思维逻辑 (95) - Java 8的日期和时间API

    ​本节继续探讨Java 8的新特性,主要是介绍Java 8对日期和时间API的增强,关于日期和时间,我们在之前已经介绍过两节了,32节介绍了Java 1.8以前的日期和时间API,主要的类是Date和 ...

  9. Java 8 日期时间 API

    转自:https://www.runoob.com/java/java8-datetime-api.html Java 8通过发布新的Date-Time API (JSR 310)来进一步加强对日期与 ...

  10. Java编程的逻辑 (95) - Java 8的日期和时间API

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...

随机推荐

  1. linux下docker安装与初始

    1 docker的安装与使用初识 1 docker的安装 # step 1: 安装必要的一些系统工具 sudo yum install -y yum-utils device-mapper-persi ...

  2. CGI, FastCGI, WSGI, uWSGI, uwsgi一文搞懂

    中间件 1.服务器中间件:nginx,apache 2.数据库中间件:介于应用程序和数据库之前的,MyCat 3.消息队列中间件:kafka,rabbitmq,Rocketmq CGI 1.CGI是一 ...

  3. Java 通过属性名称读取或者设置实体的属性值

    原因 项目实战中有这个需求,数据库中配置对应的实体和属性名称,在代码中通过属性名称获取实体的对应的属性值. 解决方案 工具类,下面这个工具是辅助获取属性值 import com.alibaba.fas ...

  4. c# 4.8 实现Windows 定时任务计划(Task Scheduler)

    分享一个我自己写的 Windows 定时任务计划(Task Scheduler) 动态创建代码,没做太多封装,留个实现笔记 首先封装一个简单配置项的类 1 public class TaskSched ...

  5. CoaXPress 2.0 FPGA 4 Channel Host and Device FMC Card User Manual

    Hello-FPGA CoaXPress 2.0 FMC Card User Manual 4 1 CoaXPress 简介 4 2 CoaXPress 4R FMC 5 2.1 硬件特性 5 2.2 ...

  6. 在Study.BlazorOne项目中引入Study.Trade模块的实体的表结构

    # 1.修改EntityFrameworkCore项目下的BlazorOneDbContext文件,增加一行代码即可 增加Study.Trade.EntityFrameworkCore中的这个方法: ...

  7. springboot,简要记录,方便复习,

    boot 笔记第一步新建工程,导包,由于boot的数据库框架是用mybtis -paus,所以关于数据库系统那儿不用色选mybatis ,需要重新maven导包完整导包以下人容: <?xml v ...

  8. vim技巧--提取文本与文本替换

    前几天遇到一个使用情景,需要从一个包含各个读取代码文件路径及名字的文件中把文件路径提取出来,做一个filelist,这里用到了文本的提取和替换,这里做个小总结记录一下. 从网上找了一个作者写的代码用来 ...

  9. history = his + story 男性史 = 历史 学单词

    history = his + story 男性史 = 历史 早先还有 herstory 由于女性地位底下,就由 history 代表历史了. 然后 history 由拉丁文过来 story 从法语过 ...

  10. JB一键重置

    版本名 版本号 更新时间 更新内容 更新地址 v1.1 2 2020-12-26 在线下载失败的请访问shop.stars-one.site,使用软件找回手动下载\n1.修复bug\n2.修复在线更新 ...