0

これは私がやろうとしているコードの一部です:

String intro = "Test String";
System.out.println("===============");  //Line 1
System.out.println(intro);              //Line 2
System.out.println("===============");  //Line 3

私はイントロを「アニメート」していました。つまり、ループを使用して、反復ごとに文字列を 1 スペース右に移動します。たとえば、1 回目は「テスト文字列」、2 回目は「テスト文字列」になります。また、Thread.sleep() 関数を使用してアニメーションを遅らせます。ただし、for ループが終了するまで 3 行目を印刷できませんでした。それを行う方法はありますか?ありがとう。

編集:

この関数は、文字列を移動するために使用されます。

public String moveChar(String a){
    char temp=' ';
    char[] charOfA = new char[50];
    charOfA = a.toCharArray();
    temp = a.charAt(a.length()-1);

    for (int i = a.length()-1; i > 0; i--) {

        charOfA[i] = charOfA[i-1];

    }
    charOfA[0] = temp;
    a = new String(charOfA);
    return a;
}

次に、メインのものは次のとおりです。

System.out.println("==================================");
for (int i = 0; i < 5; i++) {
    intro = moveChar(intro);
    System.out.print(intro);
    System.out.print("\r");
    sleep(1000);
}
System.out.println("==================================");

スリープ機能は単なる Thread.sleep(int milliseconds); です。それをtry-catchで囲みます。

4

1 に答える 1

0

アニメーションをシミュレートするために、バックスペースを印刷して、印刷したものをすべて消去できます。\b

        String x = "Test String";
        for (int i = 0; i < 10; i++)
        {
            System.out.print(x);
            int len = x.length();
            for (int j = 0; j < len; j++)
            {
                System.out.print('\b');
            }
            x = " " + x;
        }

これがすべてのプラットフォームで機能するかどうかはわかりません。Win7 コマンド ラインで動作するようです。

于 2013-04-13T15:19:32.143 に答える