我试图计算时钟的小时分秒钟秒针的角度。我计算出了计算结果,但我在格式化用户输入时遇到了问题。 这是我想...将用户输入限制为HHMMSS
录入时间:235429 二小时:176.76度 分秒:152.9度 小时分钟:30.34度
正如你所看到的,我想将用户输入的格式设置为HHMMSS,但我不知道如何格式化它。你们可以给我任何想法如何格式化用户输入,它可以检测到每个两个单独的字符,如HH,MM和SS吗? T 非常感谢您的时间。
我试图计算时钟的小时分秒钟秒针的角度。我计算出了计算结果,但我在格式化用户输入时遇到了问题。 这是我想...将用户输入限制为HHMMSS
录入时间:235429 二小时:176.76度 分秒:152.9度 小时分钟:30.34度
正如你所看到的,我想将用户输入的格式设置为HHMMSS,但我不知道如何格式化它。你们可以给我任何想法如何格式化用户输入,它可以检测到每个两个单独的字符,如HH,MM和SS吗? T 非常感谢您的时间。
使用Java 8 LocalTime
与DateTimeFormatter
使用模式"HHmmss"
传递给parse()
。
例
String userInput = "235429";
LocalTime time = LocalTime.parse(userInput, DateTimeFormatter.ofPattern("HHmmss"));
System.out.println("Hour : " + time.getHour());
System.out.println("Minute: " + time.getMinute());
System.out.println("Second: " + time.getSecond());
输出
Hour : 23
Minute: 54
Second: 29
如果用户给出坏输入,例如236429
,它抛出异常:
java.time.format.DateTimeParseException:文本 '236429' 无法解析:用于MinuteOfHour无效值(有效值0 - 59):64
陷阱的检测并处理来自用户的无效输入异常。
try {
LocalTime time = LocalTime.parse(userInput, DateTimeFormatter.ofPattern("HHmmss"));
} catch (DateTimeParseException e){
… // Handle invalid user’s invalid input.
}
无论如何,我可以将3个输入组合成一个输入吗?像输入= HHMMSS; –
@HyunMoLukeYang'235429' * * * 3个值(小时,分钟和秒)合并为一个格式为“HHMMSS”。我不明白你在问什么。 – Andreas
哦,我的意思是,而不是列出3个不同的输入,如 小时:23 分钟:54 第二:29 –
你见过[documentation](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)吗? –