我是 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);
}
}
}
}
这是我的代码。这是我想做的一个例子:
我想把这个:00:00:00
,
进入这个:00:00:01
(代码执行此操作,但它打印在新行上并且不会删除旧时间)。
问题是我想摆脱第一个(00:00:00
)并在同一行打印第二个(00:00:01
).
这在Java中可能吗?
其实这和java无关。相反,你想要console您正在显示以覆盖文本。
这可以通过发送回车符(Java 中的 \r)而不是换行符(Java 中的 \n)来完成(在任何语言中)。那么你never如果您想这样做,请使用 println(),仅使用 print() 。如果您在第一次打印之前添加 print("\r") ,它应该执行您想要的操作。
顺便说一句,如果你在一个字符串中构建整个时间,然后一次输出它,那会更加优雅和简单:)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)