在Java中print与println的区别

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是格式化输出的形式。

 

下在举个例子:

 

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,

备注:文章为转载,如有版权问题请联系岳禧嵘,邮箱:2394302457@qq.com

  • 7
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值