如何替换已在Java中打印的文本?

Hug*_*gin 4 java string time replace clock

我是Java的新手,为了学习更多,我尝试制作一个时钟.它工作得很好,除了每次每秒更改时它都在新行上打印的事实.如何制作它以便我可以用新时间替换已经打印出来的文本?

public class test {
    public static void main(String[] args) {
        test.clock();
    }
    public static void clock() {
        int sec = 0;
        int min = 0;
        int h = 0;
        for(;;) {
            sec++;
            if(sec == 60) {
                min++;
                sec = 0;
            } else if(min == 60) {
                h++;
                min = 0;
            } else if(h == 24) {
                h = 0;
            }
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            if(h < 10) {
                System.out.print("0"+h+":");
            } else {
                System.out.print(h+":");
            }
            if(min < 10) {
                System.out.print("0"+min+":");
            } else {
                System.out.print(min+":");
            }
            if(sec < 10) {
                System.out.println("0"+sec);
            } else {
                System.out.println(sec);
            }
        }       
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的代码.而且这里有什么,我试图做一个例子:我希望把这个:00:00:00成此:00:00:01(代码做到这一点,但它打印在新行,不删除旧的时间).问题是我想摆脱第一个(00:00:00)并在同一行打印第二个(00:00:01).

这在Java中可行吗?

Dur*_*dal 16

这实际上与java无关.而是希望您显示的控制台覆盖文本.

这可以通过发送回车(在Java中为\ r)而不是换行(在Java中为\n)来完成(以任何语言).因此,如果你想这样做,你永远不会使用println(),只使用print().如果在第一次打印之前添加打印("\ r"),它应该执行您想要的操作.

顺便说一句,如果你在一个字符串中构建整个时间然后立即输出所有内容,那将会更加优雅和简单:)