Java中print、printf、println的区别
printf主要是继承了C语言的printf的一些特性,可以进行格式化输出
print就是一般的标准输出,但是不换行
println和print基本没什么差别,就是最后会换行。
System.out.printf(“the number is: d”,t);
参照JAVA API的定义如下:
‘d’ 整数结果被格式化为十进制整数
‘o’ 整数结果被格式化为八进制整数
‘x’, ‘X’ 整数结果被格式化为十六进制整数
‘e’, ‘E’ 浮点结果被格式化为用计算机科学记数法表示的十进制数
‘f’ 浮点结果被格式化为十进制数
‘g’, ‘G’ 浮点根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化。
‘a’, ‘A’ 浮点结果被格式化为带有效位数和指数的十六进制浮点数
println(“test”)相当于print(“test\n”)就是一般的输出字符串
print\println\printf的区别
print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后。
println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。
printf是格式化输出的形式。
eg:
public static void main(String[] args){
int n;
double sum;
System.out.println("舍罕王赏麦问题求解!\n");
System.out.println("输入棋盘格总数:");
Scanner input=new Scanner(System.in);
n=input.nextInt();
sum=mai(n);//求解算法
System.out.printf("舍罕王赏总麦粒数为:%f粒。\n",sum);
System.out.println("舍罕王赏总麦粒数为:%f粒。\n",sum);
输出结果:
舍罕王赏总麦粒数为:36893488147419103000.000000粒。
报错
原因就是开始对println和printf之间的原理不同。
eg
public static void main(String[] args) {
int a = 9;
double b = 8.000f;
System.out.printf("a的值为%d,\n", a);
System.out.printf("a的值为%5d,b的值为%.2f", a,b);
}
输出结果
原来在"%"与"d"之间加个数5的意思是输出5个占位符。默认向右对齐。
总结经验:这样的输出是很有用的,比如你想输出一个表格,因各个数大小不一,有的5位有的4位,这样输出的的表格结果就对不齐了。如果将输出结果全部为同一样的占位符数。那样就对齐了。