我想以下列方式显示文字:
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);
}
}
答案 0 :(得分:2)
您可以使用0.1s
或更可读的方式(至少对我来说)使用Thread.sleep
打印TimeUnit.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);
}
}
答案 1 :(得分:0)
使用Thread.sleep
功能暂停执行。
System.out.print("H");
Thread.sleep(1000);
System.out.print("E");
...etc
当然,您可能希望将所有这些放入循环中,但Thread.sleep是您想要的
答案 2 :(得分:0)
试试这个:
try {
Thread.sleep(timeInMiliseconds); // In your case it would be: Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
答案 3 :(得分: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个字符,那么:
for(int i=0; i<text.length();i++){
System.out.print(""+text.characterAt(i));
try {
Thread.sleep(100);
} catch (Exception e) {
e.printStackTrace();
}
}