2013-04-13 228 views
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; 
} 

那麼一個上主要是:

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毫秒);試着抓住它。

+0

你能粘貼你試過的代碼嗎? –

+0

歡迎來到StackOverflow!你可以添加你的循環和sleep()代碼嗎? – DeltaLima

+4

不,用簡單的'println'是不可能的。您需要特殊的終端控制字符,這是特定於運行的終端模擬器的。 –

回答

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命令行上工作。