向控制台输出信息可以用输出流的write方法只是使用上没有print和println那么方便。实际上print和println方法也是对write的封装最终也是调用write向控制台写出的数据。
使用write时需要导入IOException,即在java文件前面加上 import java.io.IOException; write方法可能会抛出IOExcetion。
关于write方法不作详细介绍,平时还是用print或println更好
在idea查看,输入System.out.println()实际上是调用了以下这些方法(函数重载)
System.out.println()调用后会直接在输出之后添加一个换行,如果不写参数就是只起一个换行的作用。
其中如果参数是char[],会直接输出char[]中的所有元素,元素之间没有任何分隔符,仿佛输出了一个字符串。
还有一个比较特殊的参数是Object,Object是Java中所有类的父类,如果参数是Object对象,将直接输出Object的地址或者null,除非对应的Object重写了自己的toString方法,这里不做过多叙述。
我们可以利用字符串的连接操作,实现输出各种各样的格式,例如输出:x=5的形式,输出x的值
int x=5; System.out.println("x="+x);
只比System.out.println()少了一个没有参数的方法。
System.out.print与System.out.println的唯一区别就是,这个没有添加换行。
printf的底层就是format,俩种方法的用法没有任何区别,实际上,printf就只是调用了一下format而已
System.out.format(); System.out.printf();
俩者用法一致,下面以format举例说明。
当我们需要格式化输出一些数据,只是使用System.out.println();就有点不够用了,这时就需要用到format方法了
System.out提供了格式化的输出方法format,format的第一个参数是一个模板,模板面有一些占位符,再通过后面的参数替换模板中的占位符完成整个信息的输出
举个例子:
String name="LiLi"; int age=8; char sex='男'; float grade=52.5; System.out.format("姓名:%s, 年龄:%d, 性别:%c, 成绩:%.1f\n", name, age, sex, grade);
输出:姓名:LiLi, 年龄:8, 性别:男, 成绩:52.5
其中%c,%s等就叫做占位符,分别代表字符和字符串,它们将被后边出现的对应的变量的值替换掉。像%.1f是%f中又添加了.f 表示输出一个1位的小数。
常用占位符:
占位符 | 说明 |
---|---|
%d | 格式化输出整数 |
%f | 格式化输出浮点数 |
%e | 格式化科学计数法的浮点数 |
%s | 格式化输出字符串 |
当然不可能只有这么点了,下边才是大头????
既可以格式化基本数据类型,也可以格式化它们的包装类
%d :格式化十进制整数
%o :格式化八进制整数
%x :格式化小写十六进制整数,如:abc58
%X :格式化大写十六进制整数,如:ABC58
“+”:格式化正整数时强制添加上正好,如%+d可将123格式化位+123
“,”:格式化整数时按“千”分组,例如:%,d可将1234567890格式化位1,234,567,890
它俩可以组合使用,如:%+,d
%md或%-md指定格式化整数的长度最少为m
如%6d可将123格式化为“ 123”,左边三个空格,即如果数字的长度不足6,则在格式化的数字左边添加空格使得整体长度为6(左边添加空格即右对齐)
%-6d使得结果左对齐,即在右边添加空格,如%-6d可将123格式化为“123 ”,右边三个空格
既可以格式化基本数据类型,也可以格式化它们的包装类
“+” :格式化正数时添加正号
“,”:将正数部分按千分位
它俩可以组合使用,如:%+,f
“%.nf”可以限制小数的位数为n(遵循四舍五入)
“%mf”可以规定数据的宽度为m,长度不足补空格,默认居右(%-mf,居左)
组合使用:
System.out.printf("%7.3f",0.1235);
结果:0.124 (还有俩个空格,“.”也占一个长度)
String也可以调用format方法,用法与上述完全一致,结果返回一个字符串对象
例:
String s=String.format("%d",12345);
s的值为12345
以上是Java中格式化输出的方式有哪些?的详细内容。更多信息请关注PHP中文网其他相关文章!