【发布时间】:2021-04-28 01:49:37
【问题描述】:
我正在尝试创建一个 java 类,以从 HH:mm:ss 持续时间中获取秒数以用于某些数学运算,并且它可以工作。唯一的问题是,如果用户只有分钟和秒,他们不会考虑输入例如 0:3:42,而是会输入 3:42。
代码如下:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int seconds = 0;
System.out.println("Enter time in HH:mm:ss to convert into seconds:");
String standardTime = scan.nextLine();
scan.close();
String[] split = standardTime.split(":"); {
seconds += Integer.parseInt(split[0]) * 3600;
seconds += Integer.parseInt(split[1]) * 60;
seconds += Integer.parseInt(split[2]);
}
System.out.println(seconds);
}
}
如果格式是 mm:ss 而不是 HH:mm:ss,我希望能够使用 [1] 和 [2] 而不是 [0] 和 [1]。
【问题讨论】:
-
可以根据标准时间长度进行拆分
-
指令状态Enter time in HH:mm:ss...如果输入不是那个格式会不会出错?
-
我建议不要这样做。保持简单,如果他们搞砸了,就会抛出一个带有解释性消息的输入异常。换句话说,如果他们没有想到,就向他们解释。
-
@AndrewS 这不是错误,但是如果时间没有小时并且用户不知道在开头输入 0: 会计算错误,因为这很奇怪并且会造成不便为用户。
-
@WJS 我宁愿为用户提供简单的体验,也不愿为我自己提供简单的体验。