Строки Java System.out не выполняются должным образом

Мои строки System.out Java не выполняются должным образом, поэтому они печатают половину каждой строки в одной строке. Я не уверен, что здесь не так. Согласно моим заметкам, они выглядят хорошо. Какие-нибудь мысли?

Код:

System.out.printf("The circumference of a circle with radius ", radius,  " is: ", circumference, ".\n");
System.out.printf("The area of a circle with radius ", radius, " is: ", areacircle, ".\n");
System.out.printf("The area of a sphere with radius ", radius, " is: ", areasphere, ".\n");
System.out.printf("The volume of a sphere with radius ", radius, " is: ", volumesphere, ".\n");

Выход:

Введите радиус: 2.5 Окружность круга с радиусом Площадь круга с радиусом Площадь сферы с радиусом Объем сферы с радиусом

2 ответа

Решение

Вы не используете printf правильно. Это:

System.out.printf("The circumference of a circle with radius ", radius,  " is: ", circumference, ".\n");

должно быть:

System.out.printf("The circumference of a circle with radius %.2f is: %.2f%n", 
     radius, circumference);

Где %f является заполнителем для ваших значений с плавающей запятой (предположительно, двойных здесь). Основная идея printf состоит в том, чтобы избежать уродливой конкатенации строк, которую вы делаете в своем коде. Обратите внимание, что вы должны использовать %n для конца строки в printf и подобном коде, не \n,

Для получения более подробной информации вы можете обратиться к API для класса java.util.Formatter.

Правильно использовать printf предоставьте формат all в первом аргументе и укажите значения для всех остальных аргументов. Используйте заполнители для значений. Пример для первой строки:

System.out.printf("The circumference of a circle with radius %f is %f.\n",
    radius, circumference);

Также см. Сводку форматирования.

Другие вопросы по тегам