print和println和printf的区别_print输出格式

print和println和printf的区别_print输出格式print–是函数,可以返回一个值,只能有一个参数。println–与print唯一的区别是println换行输出。printf–函数,把文字格式化以后输出,直接调用系统调用进行IO的,他是非缓冲的。如:$name=”hunte”;$age=25;printf(“mynameis%s,age%d”,$name,$age);sprintf–跟pr


Jetbrains全系列IDE稳定放心使用

print–是函数,可以返回一个值,只能有一个参数。

println–与print唯一的区别是println换行输出。
printf–函数,把文字格式化以后输出,直接调用系统调用进行IO的,他是非缓冲的。
如:
$name=”hunte”;
$age=25;
printf(“my name is %s, age %d”, $name, $age);
sprintf–跟printf相似,但不打印,而是返回格式化后的文字,其他的与printf一样。
如:
char sql[256];
sprintf(sql,”select * from table where no = ‘%s'”,bankno);
它的功能只是把””里面的语句赋给了变量sql。

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”是一个字符值的点位符的意思。

如果只要输出量为小数,语句改为: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相补

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186675.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • Oracle数据库学习之数据类型和表的操作「建议收藏」

    Oracle数据库学习之数据类型和表的操作「建议收藏」Oracle的数据类型:字符型数据类型charvarcharvarchar2long这几个字段之间的区别:char的长度是固定的,而varchar2的长度是可以变化的。也就是char(20)和varchar2(20)都存储”abc”,char是占用20个字符的,而varchar2是占用3个字符空间的。但是char的效率要高与varchar。这也就是平时说的以空间换效率。如果有一

    2022年8月30日
  • JRTPLIB使用实例

    JRTPLIB使用实例这几天在看关于JRTPLIB方面的东西。在网上看了不少文章,其中有很大部分使用的JRTPLIB版本在3.0以下。在网上下载了一个JRTPLIB-3.7的库,发现里面的函数接口做了一些修改。现奉上一篇基

    2022年7月2日
  • lofter限流怎么解决_高并发限流

    lofter限流怎么解决_高并发限流前言:学习本篇博客是有一些前提基础的1、熟悉gateway网关使用2、熟悉nginx使用3、熟悉sentinel的应用,会涉及网关规则持久化改造看不懂的童鞋们可以补一下微服务gateway网关和Sentinel相关知识秒杀链路兜底方案之限流&降级实战一、秒杀场景介绍1.1秒杀场景的特点1.2流量消峰1.3兜底方案二、限流实战2.1nginx限流(https://nginx.org/en/docs)2.2网关限流2.2.1网关接入sentinel控制台2.2.2Sentinel

    2022年10月6日
  • 织梦中data文件夹是存放什么内容的

    织梦中data文件夹是存放什么内容的

    2021年10月7日
  • consolewriteline用法_promise sb to do

    consolewriteline用法_promise sb to do1.Promise的含义Promise是异步编程的一种解决方案,比传统的解决方案——回调函数和事件——更合理和更强大。它由社区最早提出和实现,ES6将其写进了语言标准,统一了用法,原生提供了P

    2022年7月29日
  • python 图片拼图的制作 确定不来尝试一下……

    python 图片拼图的制作 确定不来尝试一下……

    2021年11月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号