Изучение Java — разница между System.out.println, system.out.print, system.out.printf

задняя часть

*Это 26-й день моего участия в августовском испытании обновлений. Узнайте подробности события:Испытание августовского обновления

Концептуальная разница заключается в следующем:

print отображает свои аргументы в командном окне и позиционирует выходной курсор после последнего отображаемого символа.

println отображает свои аргументы в командном окне с завершающей новой строкой, чтобы поместить курсор вывода в начало следующей строки. \

printf — это форма форматированного вывода.

\

Например, код выглядит следующим образом:

package other;
public class TestPrint {
public static void main(String[] args) {
int i = 4;
double j = 5;

System.out.print("Печать i: "+ i);
System.out.println("Используйте println для вывода i: "+ i);
System.out.printf("Значение i равно %d, значение j равно %f", i,j);

}
}\

\

Результат бега есть
используйте print для вывода i:4 используйте println для вывода i:4
Значение i равно 4, а значение j равно 5.000000\

Видно, что после вывода i с помощью print разрыва строки нет, а вывод результата с помощью println идет сразу после оператора вывода print, а строка разрывается после вывода println, поэтому при выводе с помощью printf он выводится на вторая линия. \

Сосредоточьтесь на printf здесь

«Значение i равно %d, а значение j равно %f». «%d» в строке стало значением i, а «%f» стало значением j!
Здесь «%d» означает заполнитель для значения int, «%f» означает заполнитель для значения типа double или float, а параметры этой переменной предоставляются позже. Обратите внимание, что фактические имена параметров должны быть в порядке. В противном случае это будет неправильно. И тип должен соответствовать. Если мы изменим выражение на System.out.printf("Значение i равно %d, значение j равно %f", j,i);//Позиции i и j меняются местами
В настоящее время возникает ошибка, поскольку параметр, соответствующий "%d", становится j, соответствующий параметр "%f" становится i, а j имеет значение double, что несовместимо с тем, что "%d" является целым числом. Значит что-то не так.
Также "%s" означает символ точки строкового значения. "%c" означает символ точки для символьного значения.
Может быть читатели спросят, почему вывод j стал 5.000000?Потому что у double по умолчанию 6 знаков после запятой (это может быть связано с системным компьютером, некоторые не 6 знаков), но если вы хотите вывести только два знака после запятой , ты не можешь? Конечно! Просто измените предложение, и все готово!
System.out.printf("Значение i равно %d, значение j равно %.2f", i,j);
Здесь "%.2f" означает вывод двух знаков после запятой. Если вы хотите вывести три бита, то "%.3f".
Сказав это, вы обнаружите, что printf также очень полезен. Это управляет форматом вывода. \

\

Также могут быть такие примеры:

public class TestPrint {
public static void main(String[] args) {
int i = 4;
double j = 5.000f;
System.out.printf("Значение i равно d,n", i);
}\

}

\

Текущий результат:
Значение i равно 00004,
Исходное «d» означает вывод 5 заполнителей.Если число меньше 5, левая сторона будет дополнена 0. \

Обратите внимание на разницу между %d и d здесь! ! !