2013-11-09 31 views
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); 
    } 
} 
+0

第一個錯誤信息是告訴你,你不能在那裏放置一個'public static void main' - 你可能已經在別處有了。 –

+0

我刪除了其他公共靜態void main後仍然出現該消息。 – user2974798

+0

我需要看你的代碼,至少前50行,看看你把我的代碼放在哪裏。我懷疑你把'main'方法放在其他方法裏面。您的錯誤可能還有其他原因,但是如果沒有看到您的代碼,則修復它們將非常困難。 – Pshemo

回答

2

可以打印在0.1s間隔使用Thread.sleep或多個可讀的方式(至少對我來說)使用TimeUnit.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); 
    } 
} 
+0

我嘗試了你的建議,並在編譯時遇到了一系列錯誤。 – user2974798

+0

什麼樣的錯誤?您是否添加了'java.util.concurrent.TimeUnit'來導入? – Pshemo

+0

是的,我會把錯誤列表放在主文章中。 – user2974798

0

使用Thread.sleep函數暫停執行。

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

當然,你可能想要把所有這一切到一個循環,但的Thread.sleep是你想要

0

試試這個什麼:

try { 
    Thread.sleep(timeInMiliseconds); // In your case it would be: Thread.sleep(100); 
} catch (Exception e) { 
    e.printStackTrace(); 
} 
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個字符,那麼比:

for(int i=0; i<text.length();i++){ 
    System.out.print(""+text.characterAt(i)); 
    try { 
     Thread.sleep(100); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 
+0

我嘗試過了,它顯示 ^ h 他 赫爾 地獄 你好 – user2974798

+1

正是你在你的問題問:H 等待0.1秒 他 等待0.1秒 赫爾 等待0.1秒 地獄 等待0.1秒 你好 – 2013-11-09 21:39:53

+0

對不起,我應該說得更清楚一點,我希望它能在每個字母之間短暫停頓,顯示「你好」這個詞。 – user2974798