格式化控制台输出

格式化控制台输出

  如果希望显示浮点值小数点后两位,那么可以如下编写代码:

	double x = 2.0 / 3;
	System.out.println("x is " + (int)(x * 100) / 100.0);

x is 0.66

  但是,完成这个任务更好的方法是使用printf方法格式化输出。调用这个方法的语法是:

	System.out.printf(format, item1, item2, ..., itemk)

这里的format是指一个子串和格式标志服构成的字符串。
  格式标识符指定每个条目应该如何显示。这里的条目可以是数值、字符、布尔值或字符串。一个标识符是以百分号(%)开头的转换码。表1列出了一些常用的简单标识符。

表1 常用的标识符

标识符输出举列
%b布尔值true或false
%c字符‘a’
%d十进制整数200
%f浮点数45.460000
%e标准科学计数法形式的数4.556000e+01
%s字符串“Java is cool”

  下面是一个例子:

int count = 5;
double amount = 45.56;
System.out.printf("count is %d and amount is %f, count, a.ount);

显示:count是5而amount是45.560000

条目:count, amount
count → %d
amount → %f
  条目与标识符必须在次序、数量和类型上匹配。例如:count的标识符应该是%f。默认情况下,浮点值显示小数点后6位。可以在标识符中指定宽度和精度,如表2中的例子所示。

表2 指定宽度和精度的例子

举例输出
%5c输出字符并在这个字符条目前面加4个空格
%6b输出布尔值,在false前加一个空格,在ture前加两个空格
%5d输出整数条目,宽度至少为5.如果该条目的数字位数小于5,就在前面加空格。如果该条目的位数大于5,则自动增加宽度
%10.f输出的浮点数宽度至少为10,包括小数点和小数点后两位。这样,给小数点前分配了7位。如果该项小数点前的位数小于7,就在数字前面加空格。如果该项小数点前的位数大于7,则自动增加宽度
%10.2e输出的浮点条目的宽度至少为10,包括小数点。小数点后两位和指数部分。如果按科学计数法显示的数字小于10,就给数前加1空格
%12s输出的字符串宽度至少为12.如果该字符串条目小于12个字符,就在该条目前加空格。如果该字符串条目多余12个字符,则自动增加宽度

  可以使用printf方法改写在开始部分出现的,用于显示浮点数值小数点后两位的代码,如下所示:

double x = 2.0 / 3;
System.out.printf("x is %4.2f, x);//%4.2f为格式描述符;4为域宽度;2为精度;f为转换码
display           x is 0.67

  默认情况下,输出是右对齐的。可以在标识符中放一个负号(-),表明该条目在特点区域中的输出是左对齐的。例如,以下语句:

System.out.printf("%8d%8s%8.1f\n", 1234, "Java", 5.6);
System.out.printf("%-8d%-8s%-8.1f\n", 1234, "Java", 5.6);

显示:

8个字符8个字符8个字符 
   1 2 3 4   J a v a   5 . 6 
1 2 3 4   J a v a   5 . 6    

警告  条目与标识符必须在类型上严格匹配。对应于标识符%f或%e的条目必须是浮点型值,列入:是40.0而不是40.因此,int型变量不能匹配%f或%e。

提示  使用符号%来标记标识符,要在格式字符串里输出直接量%,就要使用%%。

 

 

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

开摆!!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值