Java试图在同一位置替换输出中的文本

Java试图在同一位置替换输出中的文本,java,Java,我正在为我的程序制作一个计时器,但我似乎不知道如何让它在每次计数时替换输出中的显示。因此,在输出中,如果它从1增加到2,它将用2替换1,而不是像system.out.print那样将其打印为1 2或1旁边的2。我尝试过使用\r,但这只是创建了一个新行,\b并在代码中添加了奇怪的符号。有什么建议吗 这是我的代码,我希望system.out在同一地点替换它自己,如果我的命令提示无法完成,请给出其他方法,我可以实现我的结果 static void counter(){ i

我正在为我的程序制作一个计时器,但我似乎不知道如何让它在每次计数时替换输出中的显示。因此,在输出中,如果它从1增加到2,它将用2替换1,而不是像system.out.print那样将其打印为1 2或1旁边的2。我尝试过使用\r,但这只是创建了一个新行,\b并在代码中添加了奇怪的符号。有什么建议吗

这是我的代码,我希望system.out在同一地点替换它自己,如果我的命令提示无法完成,请给出其他方法,我可以实现我的结果

      static void counter(){

        int delay = 0; // delay for however long
        int period = 1000; // repeat every sec.        
        Timer timer = new Timer();
        timer.scheduleAtFixedRate(new TimerTask()
        {
            public void run()
            {

                SEC++;

                if (SEC==60){
                    SEC = 0;
                    MINUTE++;
                }
                if (MINUTE==60){
                    MINUTE = 0;
                    HOUR++;
                }

                System.out.print(HOUR + ":" + MINUTE + ":" + SEC);



            }
        }, delay, period);
    }      

根据您的IDE、控制台、Shell或其他输出方法,这可能是不可能的。一种解决方案是尝试清除控制台

有关这方面的建议和一些困难,请参见此处:


如果没有代码和背景信息,包括您使用的gui库,您的问题将很难回答。请考虑创建和发布一个有效的问题。听起来,OP不是使用GUI应用程序,而是一个命令行程序,它可以写入控制台。如果这是真的,则可能不可能,这取决于控制台或shell的平台和/或。您可以尝试在输出文本中使用退格字符(DEC:08)。