2

我想让文本以下列方式出现:

H
wait 0.1 seconds
He
wait 0.1 seconds
Hel
wait 0.1 seconds
Hell
wait 0.1 seconds
Hello

但我不知道该怎么做。任何帮助,将不胜感激。

编辑:我希望我能够以不需要我制作 System.out.print(); 的方式做到这一点。对于每个字母。

编辑3:这是我的代码。编辑4:没有更多的问题,它工作得很好,谢谢。

import java.util.Scanner;
import java.util.concurrent.TimeUnit;
public class GameBattle
{
public static void main(String[] args) throws Exception {
    printWithDelays("HELLO", TimeUnit.MILLISECONDS, 100);
}

public static void printWithDelays(String data, TimeUnit unit, long delay)
        throws InterruptedException {
    for (char ch:data.toCharArray()) {
        System.out.print(ch);
        unit.sleep(delay);
    }
}
4

4 回答 4

2

您可以使用或更易读的方式(至少对我而言)0.1s间隔打印每个字母,例如Thread.sleepTimeUnit.MILLISECONDS.sleep

print first letter;
TimeUnit.MILLISECONDS.sleep(100);
print second letter
TimeUnit.MILLISECONDS.sleep(100);
...

[更新]

我希望我能够以一种不需要我制作 System.out.print(); 的方式来做到这一点。对于每个字母。

我看不出有任何理由不这样做。

public static void main(String[] args) throws Exception {
    printWithDelays("HELLO", TimeUnit.MILLISECONDS, 100);
}

public static void printWithDelays(String data, TimeUnit unit, long delay)
        throws InterruptedException {
    for (char ch : data.toCharArray()) {
        System.out.print(ch);
        unit.sleep(delay);
    }
}
于 2013-11-09T20:48:14.740 回答
0

使用该Thread.sleep功能暂停执行。

System.out.print("H");
Thread.sleep(1000);
System.out.print("E");
...etc

当然,您可能希望将所有这些放入一个循环中,但 Thread.sleep 是您想要的

于 2013-11-09T20:50:08.783 回答
0

尝试这个:

 try {
  Thread.sleep(timeInMiliseconds); // In your case it would be: Thread.sleep(100);
} catch (Exception e) {
    e.printStackTrace();
}
于 2013-11-09T20:50:42.833 回答
0
String text = "Hello";

for(int i=1; i<=text.length();i++){
   System.out.println(text.substring(0, i));
    try {
       Thread.sleep(100); 
    } catch (Exception e) {
       e.printStackTrace();
    }
}

编辑:如果你只想要 1 个字符乘 1,那么:

for(int i=0; i<text.length();i++){
   System.out.print(""+text.characterAt(i));
    try {
       Thread.sleep(100); 
    } catch (Exception e) {
       e.printStackTrace();
    }
}
于 2013-11-09T20:54:42.277 回答