在Java中使用\r倒计时

在Java中使用\r倒计时,java,counter,countdown,overwrite,println,Java,Counter,Countdown,Overwrite,Println,如何在Java中正确使用\r倒计时? 我想从20倒计时到0并打印此内容,我想更新此内容,而不是在新行中写入,因此我使用了\r\n。它是有效的,但是当它达到10时,在这之后,它写的不是9,而是90,80等等。。。请更新我的代码以解决问题。谢谢 这是我的密码 int timer1=20; int timer2=0; String timer3="\r"; while(timer1>timer2){ try {Thread.sleep(1000);} catch (InterruptedExce

如何在Java中正确使用\r倒计时? 我想从20倒计时到0并打印此内容,我想更新此内容,而不是在新行中写入,因此我使用了\r\n。它是有效的,但是当它达到10时,在这之后,它写的不是9,而是90,80等等。。。请更新我的代码以解决问题。谢谢 这是我的密码

int timer1=20;
int timer2=0;
String timer3="\r";
while(timer1>timer2){
try {Thread.sleep(1000);} catch (InterruptedException e) {e.printStackTrace();}  
System.out.print(timer3+timer1);   
System.out.flush(); 
timer1--;}

至少可以说,您的变量名很混乱。您遇到的问题是\r将您带到行的开始处,并且您没有覆盖以前的输出,因此当您写出数字9时,仍然会保留10中的0

更改此行:

   System.out.print(timer3+timer1); 
致:


这应该可以解决问题。

这是因为第二个字符
0
仍然存在。使用
09
08
etcOr只需在末尾打印一个额外的空格字符。@Kayaman它可以工作!在末尾使用空格。谢谢
   System.out.print(timer3+timer1+ " ");