0

这是我正在尝试执行的一段代码:

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

我正在为介绍“制作动画”,即我使用循环将字符串向右移动一个空格以进行每次迭代。例如,第一次是“测试字符串”,第二次是“测试字符串”。我还使用 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;
}

那么 Main 上的一个是:

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 回答