gpt4 book ai didi

Java int 格式化?

转载 作者:行者123 更新时间:2023-12-05 08:28:48 28 4
gpt4 key购买 nike

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

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

有一种方法可以在将变量保持为 int 的同时对其进行格式化?我可以用不同的方式编码来绕过这个吗?我对这些类(class)的工作方式有误吗??

我对这些概念很陌生

这是我使用的代码

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);

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

我也尝试过使用 String 格式,但我真的不知道在那之后如何处理那个字符串,它要求我提供一个 int 而不是一个字符串来构建这个方法

最佳答案

首先:int 不区分 09 和 9。它们是相同的值:数字九。

接下来:如果您已经有了数字,那么返回到字符串来生成日期是一种反模式:您将失去类型检查。因此,与其使用 LocalTime.parse 并从 int 值构造输入,不如简单地使用 use LocalTime.of(hours, minutes) :

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

关于Java int 格式化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74653347/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com