我在使用devide和modolu运算符时遇到了一些数学问题。
基本上我必须提供mmsshh格式作为输入,输出应该是这样的:“小时”+小时+“分钟”+分钟“秒”+秒。
因此,当我插入003400时,输出应为“小时0分0秒34”。
问题在于0让我无法获得这些单独的数据值。
我已经尝试了以下方法,但它们无法正常工作。
public void setMinutes()
{
minutes = time / 10000;
}
public int getMinutes()
{
return minutes;
}
public void setSeconds()
{
seconds = (time%1E4)/100;
}
public double getSeconds()
{
return seconds;
}
答案 0 :(得分:2)
您可以尝试这个非常简单的解决方案:
public static void main(String[] args) {
String input = "123456";
String minutes = input.substring(0, 2);
String seconds = input.substring(2, 4);
String hours = input.substring(4, 6);
System.out.println("Hours" + hours + "minutes" + minutes + "seconds" + seconds);
}
输出:
Hours56minutes12seconds34
如果你想获得双打而不是字符串,请执行以下操作:
public static void main(String[] args) {
String input = "123456";
Double minutes = parseDouble(input.substring(0, 2));
Double seconds = parseDouble(input.substring(2, 4));
Double hours = parseDouble(input.substring(4, 6));
System.out.printf("Hours %.0f Minutes %.0f Seconds %.0f\n", hours, minutes, seconds);
}
答案 1 :(得分:0)
考虑到非常规输入模式,最好将输入视为String。 获取小时,分钟和秒的值,然后对值执行Integer.parseInt。
答案 2 :(得分:0)
Java方法是使用SimpleDateFormat(或者来自Joda的时间/持续时间,example)来解析字符串。作为奖励,它将检测无效输入,例如日期为246060,持续时间为xx6060。