2017-09-27 108 views
0

我試圖計算時鐘的小時分秒鐘秒針的角度。我計算出了計算結果,但我在格式化用戶輸入時遇到了問題。 這是我想...將用戶輸入限制爲HHMMSS

錄入時間:235429 二小時:176.76度 分秒:152.9度 小時分鐘:30.34度

正如你所看到的,我想將用戶輸入的格式設置爲HHMMSS,但我不知道如何格式化它。你們可以給我任何想法如何格式化用戶輸入,它可以檢測到每個兩個單獨的字符,如HH,MM和SS嗎? T 非常感謝您的時間。

+1

你見過[documentation](https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html)嗎? –

回答

1

使用Java 8 LocalTimeDateTimeFormatter使用模式"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. 
} 
+0

無論如何,我可以將3個輸入組合成一個輸入嗎?像輸入= HHMMSS; –

+2

@HyunMoLukeYang'235429' * * * 3個值(小時,分鐘和秒)合併爲一個格式爲「HHMMSS」。我不明白你在問什麼。 – Andreas

+0

哦,我的意思是,而不是列出3個不同的輸入,如 小時:23 分鐘:54 第二:29 –