print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符以后。spa
println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。3d
printf是格式化输出的形式。字符串
下在举个例子:class
package other;变量
public class TestPrint {float
public static void main(String[] args) {static
int i = 4;co
double j = 5;字符
System.out.print("用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
能够看到,用print输出i后,没有换行,用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"是int形的不一致。因此有错了。
还有"%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的值为%5d,\n", i);
System.out.printf("i的值为%3d,j的值为%.2f", i,j);
}
}
运行结果为:
i的值为 4,
i的值为 4,j的值为5.00
原来在"%"与"d"之间加个数5的意思是输出5个占位符。默认向右对齐。这样的输出是颇有用的,好比你想输出一个表格,因各个数大小不一,有的5位有的4位,这样输出的的表格结果就对不齐了。若是将输出结果所有为同同样的占位符数。那样就对齐了。呵呵。
除了"%d"能够这样外,别的也能够,读者不防试试。会有不少收获的。
咱们再试着将代码改一下:
public class TestPrint {
public static void main(String[] args) {
int i = 4;
double j = 5.000f;
System.out.printf("i的值为%05d,\n", i);
}
}
运行结果为:
i的值为00004,
哈哈,原来"%05d"的意思是输出5个占位符,若是数字不足5的话就有左边以0相补