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

これを試して:

 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

Thread.sleep関数を 使用して実行を一時停止します。

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

もちろん、おそらくそれらすべてをループに入れたいと思うでしょうが、 Thread.sleep はあなたが望むものです

于 2013-11-09T20:50:08.783 に答える
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 に答える