我希望用户为本地输入小时和分钟.时间从00到23和从00到59,我将其扫描为int.它是有效的,但对于从00到09的值,int忽略0,并将其放置为0,1,2...9,而不是00,01,02,03...09;这 destruct 了Local.Time,因为,例如"10:3";不是有效的时间格式.

我读过,我可以将其格式化为字符串,但我认为这对我没有帮助,因为我需要一个int值来构建LocalTime和使用它进行后续操作.

有一种方法可以格式化它,同时将变量保留为int?? 我可以用不同的代码来绕过它吗? 关于这些课程的工作原理,我说错了吗?

我对这些概念还很陌生

以下是我正在使用的代码

int hours;
int minutes;

System.out.println("Input a number for the hours (00-23): ");
hours = scan.nextInt();

System.out.println("Input a number for the minutes (00-59): ");
minutes = scan.nextInt();

LocalTime result = LocalTime.parse(hours + ":" + minutes);

我try 使用NumberFormat类,但它在try 声明其变量时返回错误(类似于它是一个抽象变量,无法实例化)

我也try 使用字符串格式,但我真的不知道在那之后该如何处理该字符串,它要求我使用一个int而不是一个字符串来构建此方法

推荐答案

首先,int不能区分09和9.它们是相同的值:数字9.

下一步:如果您已经有了数字,那么返回到一个字符串来生成日期是一种反模式:这样您就可以进行losing次类型判断.因此,与使用LocalTime.parse并从int个值构造输入不同,您只需使用use LocalTime.of(hours, minutes):

LocalTime result = LocalTime.of(hours, minutes);

Java相关问答推荐

在现代操作系统/硬件上按块访问数据值得吗?

从技术上讲,OPC UA客户端是否可以通过转发代理将请求通过 tunel 发送到OPC UA服务器?

为什么我们不能实现两个接口,其中一个接口有相同的签名,其中一个接口有默认的实现在java?'

CAMEL 4中的SAXParseException

Kubernetes的Java客户端检索状态.处于终止状态的Pod的阶段';正在运行';

Java记录的不同序列化/反序列化

RESTful框架类字段是安全的还是不安全的

当我已经安装了其他版本的Java时,如何在Mac OSX 14.3.1上安装Java 6?

名称冲突具有相同的擦除

在Spring终结点中,是否可以同时以大写和小写形式指定枚举常量?

第三方Jar pom.xml

匹配一组字符或另一组字符

GetChildren().emoveAll()不会删除 node

在Java中将int[]矩阵添加到ArrayList中,但出现错误

Java Telnet客户端重复的IAC符号

无法使用Freemarker从XML中读取重复的标记值

在Oracle中调用输出参数在索引处缺少IN或OUT参数的函数

本机方法(JNI)总是编译的吗?

我们可以在方法中声明接口吗?

如何在JSP中从select中获取值并将其放入另一个select