这是我要做的一段代码:
String intro = "Test String";
System.out.println("==============="); //Line 1
System.out.println(intro); //Line 2
System.out.println("==============="); //Line 3
我正在“动画”介绍,即我使用循环将字符串向右移动一次,每次迭代。例如,第一次是“Test String”,第二次是“Test String”。我还使用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("==================================");
Sleep函数只是Thread.sleep(int milliseconds);用try-catch包围它。
答案 0 :(得分: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命令行上工作。