2015-09-28 118 views
-1

我試圖顯示此:有沒有其他方法可以在java中重複打印字符?

Hamburger................$10.00 
Chicken Sandwich....$12.00 

但是,我知道做到這一點的唯一方法是鍵入的所有字符。

System.out.println("Hamburger................$10.00");<br> 
System.out.println("Chicken Sandwich....$12.00"); 

我只想問,如果有不重複輸入到輸入代碼的簡單方法「」 ?

+0

如果你只做5個或10個項目,有沒有真正更快的方法。如果你正在做很多事情,我會拿你的原始字符串'Hamburger',得到它的長度,從一個像20那樣的固定數字中減去這個長度,然後用一個循環來建立一串長度的點。然後,您需要使用一系列字符串爲您的每個食物項目執行此操作。祝你好運! –

+1

你的顯示輸出不是固定寬度的字體,這就是爲什麼你的'''填充不是一致的長度。沒有任何東西可以在純Java中完成,沒有關於正在使用的字體的信息。 – Andreas

回答

0

您可以從for循環打印(System.out.print,以便所有輸出都在同一行上)。或者,我願意,你可以做一個靜態方法:

public static String repeat(String val, int times){ 
    String returnVal = val; 
    for(int i = 1; i < times; i++) 
    returnVal += val; 
    return returnVal; 
} 

這樣,您就可以更改您的代碼:

System.out.println("Hamburger" + repeat(".",18) + "$10.00"); 
+0

謝謝你。幫了很多。 – Deja

1

您可以編寫打印的整條生產線,文字的方法,點和數量。

static void itemLine(int width, String text, double value){ 
    DecimalFormat myFormatter = new DecimalFormat("$###,##0.00"); 
    String numstr = myFormatter.format(value); 
    int dots = width - text.length() - numstr.length(); 
    System.out.print(text); 
    for(int i = 0; i < dots; ++i) System.out.print('.'); 
    System.out.println(numstr); 
} 

爲您節省計算點數所需的次數的麻煩。

0

你可以這樣做:

new String(Collections.nCopies(18, '.').toArray(new char[18])); 
相關問題