在Java中print,printf,println的区别
三者都属于 System.out 的输出方法,核心差异:是否换行、是否支持格式化、输出后光标位置
1. System.out.print()
不自动换行,输出完内容,光标停在内容后面。
只原样输出传入的数据,没有格式化能力。
java
运行
System.out.print("Hello");
System.out.print("World");
//输出:HelloWorld 两个内容挤在同一行
2. System.out.println()
print + line:输出完成自动换行,光标跳到下一行开头。
同样不支持格式化。
java
运行
System.out.println("Hello");
System.out.println("World");
/*输出:
Hello
World
*/
println() 不传参数:只输出一个换行,空一行。
println(obj) 会自动调用对象的 toString()。
3. System.out.printf()
format 格式化输出,来自 C 语言的printf风格。
默认不自动换行,想要换行需要手动加 %n。
支持格式占位符:%d整数、%f浮点数、%s字符串、%.2f保留两位小数。
java
运行
int a = 10;
double b = 3.1415;
System.out.printf("数字:%d,小数:%.2f%n", a, b);
//输出:数字:10,小数:3.14
%n代表Java平台兼容的换行符,不要用\n,Windows/Linux换行兼容问题
对比表格
表格
方法 自动换行 支持格式化 光标位置
print() ❌ 不换行 ❌ 输出内容末尾
println() ✅ 自动换行 ❌ 下一行开头
printf() ❌,需要%n换行 ✅占位符格式化 格式字符串末尾
常见坑点
printf 参数个数必须和占位符数量匹配,否则抛异常。
java
运行
System.out.printf("值=%d", 10,20); //参数多了,报错
浮点数输出,printf("%.2f",num) 会自动四舍五入,做题输出小数非常常用。
%n 是 Java 推荐换行,\n 在部分 Windows 控制台显示异常。
快速记忆口诀
print:打完不换行
println:打完换一行
printf:按模板排版,要换行写 % n
小示例完整运行
java
运行
public class Test{
public static void main(String[] args) {
System.out.print("A");
System.out.print("B");
System.out.println("C"); //输出ABC 然后换行
System.out.println("D");
double pi = 3.1415926;
System.out.printf("PI = %.2f%n", pi);
}
}
输出:
plaintext
ABC
D
PI = 3.14
补充:C 语言里只有printf,没有print/println,C 靠\n换行。
浙公网安备 33010602011771号