Java中print、printf、println的区别 (

原创 2012年03月30日 10:40:32

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("testn")就是一般的输出字符串

printprintlnprintf的区别

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中print、printf、println的区别

printf主要是继承了C语言的printf的一些特性,可以进行格式化输出 print就是一般的标准输出,但是不换行 println和print基本没什么差别,就是最后会换行 System.ou...
  • qq_33271612
  • qq_33271612
  • 2016年02月19日 20:09
  • 23316

java中printf,print,println,区别及用法详解

此题是蓝桥杯的一道竞赛试题,在编写程序时,遇到了printf的用法,不是很熟悉,特此总结一下。 以下是对Java中print、printf、println的区别进行了详细的分析介绍,需要的朋友可以过...
  • itguangit
  • itguangit
  • 2015年11月26日 23:31
  • 1102

print、println、printf的区别

print--是函数,可以返回一个值,只能有一个参数。 println--与print唯一的区别是println换行输出。 printf--函数,把文字格式化以后输出,直接调用系统调用进行IO...
  • geniushorse
  • geniushorse
  • 2016年12月06日 17:42
  • 2634

Java中print println printf详细介绍

print println printf的区别: printf主要是继承了C语言的printf的一些特性,可以进行格式化输出。 print就是一般的标准输出,但是不换行。print将它的参数显示在命令...
  • u011070297
  • u011070297
  • 2014年03月05日 19:37
  • 1736

Go 学习笔记:Println 与 Printf 的区别,以及 Printf 的详细用法

Println 与Printf 都是fmt 包中的公共方法,在需要打印信息时需要用到这二个函数,那么这二个函数有什么区别呢?...
  • zgh0711
  • zgh0711
  • 2017年12月19日 15:39
  • 469

go println与printf区别

Println 与Printf 都是fmt 包中的公共方法 Println :可以打印出字符串,和变量; Printf : 只可以打印出格式化的字符串,可以输出字符串类型的变量,不可以输出...
  • whatday
  • whatday
  • 2017年07月11日 18:45
  • 665

PrintWriter中的print()和println()

今天在学习socket通信的时候,写了一个简单的Demo,运行的时候出现了一个问题,客户端在写入数据并调用flush方法后,服务器端并没有接收到数据。 客户端主要代码如下: S...
  • flpanbin
  • flpanbin
  • 2017年02月09日 17:33
  • 2012

print与printf的区别

print与printf的区别 1,print 中不能使用%s ,%d 或%c; 2,print 自动换行,printf 没有自动换行。 [root@localhost awk-stud...
  • adudurant
  • adudurant
  • 2014年05月27日 14:15
  • 4504

PrintWriter中write与println方法的区别

最近写了一个网络编程的小程序,即服务端与客户端相互发送信息即可。在其中发现了一些问题,就是在往IO流中写数据的问题。其中的write()方法,本身不会写入换行符,如果用write()写入了信息,在另一...
  • qq_25610165
  • qq_25610165
  • 2017年02月25日 16:08
  • 1940

Java中print和println的区别

println打印的时候自带了换行,下一次在打印的时候从下一行开始打印。 print不换行,下次打印的时候在这次打印的东西后面直接打印。...
  • qq_34908844
  • qq_34908844
  • 2017年05月26日 00:46
  • 439
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Java中print、printf、println的区别 (
举报原因:
原因补充:

(最多只允许输入30个字)