java输出语句的区别(转载)

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是格式化输出的形式。
 
下在举个例子:
 
package other;
 
public  class  TestPrint {
 
public  static  void  main(String[] args) {
 
int  i = 4;
 
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的值为],\n" , i);
 
System. out .printf( "i的值为=,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的值为d,\n" , i);
 
}
 
}
 
运行结果为:
 
i的值为00004,
 
哈哈,原来 "d" 的意思是输出5个占位符,如果数字不足5的话就有左边以0相补

你可能感兴趣的:(java)