有一个简短的问题。在我正在编写的Java应用程序中,我希望终端打印“Hello”,但一次打印1个字母,但速度很慢。
实施例: H (等几秒钟) Ë (等几秒钟) 升 (依此类推)
我正在做的是在每个字母后使用Thread.sleep。所以问题是,可以将该方法用于我正在尝试的方法吗?如此,这是一个有效使用计时器?如果没有,我很乐意,如果你能解释原因并提供解决方案。
代码:
public static void main(String[] args) throws Exception {
System.out.println("H");
Thread.sleep(750);
System.out.println("e");
Thread.sleep(750);
System.out.println("l");
Thread.sleep(750);
System.out.println("l");
Thread.sleep(750);
System.out.println("o");
}
我很擅长使用这个论坛,所以如果这个问题已经得到解答我会道歉。谢谢! :)
答案 0 :(得分:3)
除非你的程序在写信之间应该做些什么,否则睡眠是一种非常合适的方式来消磨时间。
答案 1 :(得分:2)
Java Thread.Sleep()不保证已过去的确切时间: 它只是近似的“等待”时间
为了更好地达到像你这样的目的,你可以使用“Timer”类,代码会更好:
public class TimerDemo {
private int ptr = -1;
String[] myStringArray = {"H","e","l","l","o"};
public static void main(String[] args) {
final Timer timer = new Timer();
// creating timer task, timer
TimerTask task = new TimerTask() {
@Override
public void run() {
// TODO Auto-generated method stub
System.out.println(myStringArray[++ptr]);
if (ptr == 4) { timer.cancel(); }
}
};
// scheduling the task at interval
timer.scheduleAtFixedRate(tasknew,0, 1000);
}
}