2013-12-11 2 views
0

У меня есть программа Java, которая читает из такого файлаПовторяющийся номер в java до следующей строки

6 весело. 3 hello 10 <> 2 25 4 wow!

Число представляет, сколько раз слово будет повторяться, поэтому выход будет fun.fun.fun.fun.fun.fun.

hellohellohello 

<><><><><><><><><><> 

2525 

wow!wow!wow!wow! 

Однако шахта печать на одной строке

import java.io.*; 
import java.util.*; 

public class Words { 
    public static void main(String[] args) 
    throws FileNotFoundException { 
    Scanner input = new Scanner(new File("aa1234.txt")); 
    printStrings(input); 
    } 

    public static void printStrings(Scanner input) { 
    while (input.hasNext)) { 
     int times = input.nextInt(); 
     String word = input.next(); 
     for (int i = 1; i <= times; i++) { 
      System.out.print(word); 
     } 
    } 
    } 
} 

Я играл вокруг с input.nextLine() и этажерки, но не понимаю, как добраться до следующей строки после этого печатает повторяющиеся слова. Помогите?

+0

Использование System.out.println() помещает каждое слово в свою собственную строку. Я хочу, чтобы повторяющиеся слова были в одной строке. – Programmer2b

+0

Хорошо, поэтому println выходит за пределы цикла for. Спасибо! – Programmer2b

ответ

0

Вы можете использовать System.out.print("\n") для печати конца строки.

Как это:

while (input.hasNext)) { 
    int times = input.nextInt(); 
    String word = input.next(); 
    for (int i = 1; i <= times; i++) { 
     System.out.print(word); 
    } 
    System.out.print("\n"); 
} 

Вы также можете использовать System.out.println() напечатать строку и автоматически добавляет в конец строки. Например, построить строку, прежде чем распечатать его:

while (input.hasNext)) { 
    int times = input.nextInt(); 
    String word = input.next(); 
    StringBuilder builder = new StringBuilder(); 
    for (int i = 1; i <= times; i++) { 
     builder.append(word); 
    } 
    System.out.println(builder.toString()); 
} 

Обратите внимание на использование StringBuilder, гораздо быстрее и потребляет меньше памяти, чем классическая конкатенации.

0

сделать ваши функции, как показано ниже

public static void printStrings(Scanner input) { 
while (input.hasNext)) { 
    int times = input.nextInt(); 
    String word = input.next(); 
    for (int i = 1; i <= times; i++) { 
     System.out.print(word); 
    } 
    System.out.println(); 
} 
} 
0

Выпуск:

шахта печатает на одной строке

Решение:

Поскольку вы использовали System.out.print(), используя что он будет печатать все на одном ли северо-восток Если вы хотите иметь разрыв строки, то используйте System.out.println()

1
for (int i = 1; i <= times; i++) { 
      System.out.print(word); 
} 
System.out.println(); 
1

печать одна новая линия после печати все те же слова в одной строке.

for (int i = 1; i <= times; i++) { 
     System.out.print(word); 
    } 
    System.out.println(); 
0

Распечатать новую строку после внутреннего цикла. Что-то вроде этого

while (input.hasNext()) 
{ 
    int times = input.nextInt(); 
    String word = input.next(); 
    for (int i = 1; i <= times; i++) { 
    System.out.print(word); 
    } 
    System.out.println(); 
} 
Смежные вопросы