浅析Java中print、printf、println的区别

 更新时间:2013年08月14日 10:20:24   作者:  
以下是对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("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实现简单版贪吃蛇游戏

    Java实现简单版贪吃蛇游戏

    这篇文章主要为大家详细介绍了Java实现简单版贪吃蛇游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Spring中@RequestMapping、@RestController和Postman

    Spring中@RequestMapping、@RestController和Postman

    本文介绍了Spring框架中常用的@RequestMapping和@RestController注解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-10-10
  • mybatis中实现枚举自动转换方法详解

    mybatis中实现枚举自动转换方法详解

    在使用mybatis的时候经常会遇到枚举类型的转换,下面这篇文章主要给大家介绍了关于mybatis中实现枚举自动转换的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或工作具有一定的参考学习价值,需要的朋友们下面来一起看看吧。
    2017-08-08
  • Java程序运行时出现乱码问题的排查与解决方法

    Java程序运行时出现乱码问题的排查与解决方法

    本文主要介绍了Java程序运行时出现乱码问题的排查与解决方法,包括检查Java源文件编码、检查编译时的编码设置、检查运行时的编码设置、检查命令提示符的代码页、检查命令提示符的字体、检查 Java 程序的输出代码以及检查环境变量,需要的朋友可以参考下
    2025-03-03
  • java实现上传文件到服务器和客户端

    java实现上传文件到服务器和客户端

    这篇文章主要为大家详细介绍了java实现上传文件到服务器和客户端,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • Java获取配置文件的值过程解析

    Java获取配置文件的值过程解析

    这篇文章主要介绍了java获取配置文件的值过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-01-01
  • MyBatis中select语句中使用String[]数组作为参数的操作方法

    MyBatis中select语句中使用String[]数组作为参数的操作方法

    在 MyBatis 中,如何在 mapper.xml 配置文件中 select 语句中使用 String[] 数组作为参数呢,并且使用IN关键字来匹配数据库中的记录,这篇文章主要介绍了MyBatis中select语句中使用String[]数组作为参数,需要的朋友可以参考下
    2023-12-12
  • 关于@RequestParam的使用所遇到的404问题

    关于@RequestParam的使用所遇到的404问题

    这篇文章主要介绍了关于@RequestParam的使用所遇到的404问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java  mysql数据库并进行内容查询实例代码

    Java mysql数据库并进行内容查询实例代码

    这篇文章主要介绍了Java mysql数据库并进行内容查询实例代码的相关资料,需要的朋友可以参考下
    2016-11-11
  • 使用Mybatis Generator结合Ant脚本快速自动生成Model、Mapper等文件的方法

    使用Mybatis Generator结合Ant脚本快速自动生成Model、Mapper等文件的方法

    这篇文章主要介绍了使用Mybatis Generator结合Ant脚本快速自动生成Model、Mapper等文件的方法的相关资料,需要的朋友可以参考下
    2016-06-06

最新评论