如何将整数拆分为String并自动将其转换为秒/分钟/小时

时间:2017-10-07 08:50:50

标签: java string int converter

我在GUI上设置并显示了一个计时器。

我希望程序节省时间并加载它。我成功了,但是, 我希望无论何时程序启动,都要加载上一次。

ms是毫秒,如果它通过1000,则将其转换为1秒并再次获得值0。我创建了第二个(毫秒测试)作为(分数)显示而不是将其更改为0.在计时器停止之前,分数不会重置。

我想获取分数并提取以获取以下值的值:

分钟 / / 毫秒

我试图提取它或用不同的数字除以它但对我来说太难了:/

简单地说,我想自动检测分数的长度并获得字符串上的分钟,秒和毫秒,并在JLabel之后显示它。

我可以创建其他整数为milliBackupsecondsBackupminuteBackup。 并将它们分别传递给毫秒/秒/分钟。但是如果它能够,我想以这种方式做到这一点。

public void beginTimer() {

            score++;
            ms++;

            if(ms==1000) {

                ms = 0;
                s++;

                if(s>59) {

                    s = 0;
                    m++;

                    if(m>59) {

                        timer.cancel();

                    }
                }

            }

            lblTimer.setText(displayTimer());

        }

和DisplayTimer有:

public String displayTimer() {
            return String.format("%02d:%02d:%03d", m, s, ms);
        }

2 个答案:

答案 0 :(得分:1)

您不会说您如何更新该方法。如果您正在致电Thread.sleep,则应特别小心。有更好的方法。但是使用你的代码:

// bad use of static but once you'll get it working, change it
static long s = 1;
static long m = 1;
static long ms = 1;

// the method is not beginTimer but updateTimer and goes inside a
// loop or something which calls it agan and again
public void updateTimer() {

        if(ms==1000L) {                  
            ms = 0;
            s++;  

            if(s==60L) {                      
                s = 0;
                m++; 

                if(m==60L) {                          
                    timer.cancel();                         
                }
            }                   
        }               
        lblTimer.setText(displayTimer());               
    }

答案 1 :(得分:0)

如何从score计算分钟(m),秒(s)和毫秒(ms):

ms = score; 
s = ms / 1000; // integer div
ms = ms % 1000; // remainder
m = s / 60; // integer div
s = s % 60; // remainder