Могу ли я использовать printf в Java, не переходя на новую строку - PullRequest
0 голосов
/ 11 декабря 2011

Я использую метод System.out.printf для форматирования строки и печати строки, но после этого мне нужно напечатать еще одну строку для цикла с методом print без перемещения новой строки.

Теперь, после использования метода printf, он переместится на новую строку. но мне не нужно перемещать новую строку, пока не будет напечатан цикл for.

это возможно ?? или вы можете сказать по-другому

вот мой пример кода

  System.out.printf("%7s  %s%n",names[i], " ");
        for(int j=0; j<5;j++){
        System.out.print( grades[i][j]+ " " );
        }
   System.out.println();

Ответы [ 6 ]

10 голосов
/ 11 декабря 2011

printf по умолчанию не печатает новую строку. Вы действительно должны прочитать документацию. Когда вы явно печатаете новую строку, используя заполнитель новой строки %n, вы не должны удивляться, что получаете новую строку ...

Так что просто удалите %n, если не хотите.

2 голосов
/ 11 декабря 2011

Полагаю, это то, что вам нужно,

Чтобы напечатать имя ученика вместе с его оценками в каждой строке.

Для этого вам необходимо:

for(int i=0;i<number_of_students;i++)
{
 System.out.printf("%7s  %s ",names[i], " ");
                           ^                                 //note the ^
            for(int j=0; j<5;j++){
            System.out.print( grades[i][j]+ " " );
            }

System.out.println();
}

Это даст вам что-то вроде этого:

Имя Оценка Оценка Оценка Оценка Оценка

Имя Оценка Оценка Оценка Оценка Оценка

...

2 голосов
/ 11 декабря 2011

printf не будет печатать новую строку самостоятельно, %n в конце вашего формата String вызывает новую строку.Замена "%7s %s%n" на "%7s %s" должна работать.

1 голос
/ 11 декабря 2011

Вы имеете в виду, как это?

System.out.printf("%7s  %s%n",names[i], " ");
        for(int j=0; j<5;j++){
        System.out.print( grades[i][j]+ " " );
        }
System.out.println();
0 голосов
/ 27 мая 2015

Вы можете печатать вне вашей петли.

String gradesString;
System.out.printf("%7s  %s%n",names[i], " ");
    for(int j=0; j<5;j++){
        gradesString += grades[i][j]+ " ";
    }
System.out.println(gradesString);
0 голосов
/ 11 декабря 2011

Использовать System.out.format(String, Object...), что не соответствует строке

...