2015-09-28 3 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 пунктов, есть на самом деле не более быстрый способ. Если вы делаете много, я бы взял, например, вашу исходную строку «Гамбургер», получив ее длину, вычтем эту длину из фиксированного числа, например 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])); 
Смежные вопросы