3.7.2 格式化输出

    可以使用System.out.print(x)将数值x输出到控制台上。这条命令将以x对应的数据类型所允许的最大非0数字位数打印输出x。例如:
            double x = 10000.0 / 3;
            System.out.println(x);   // 3333.3333333333335
 
    Java SE 5.0沿用了C语言库函数中的printf方法。例如,调用
            double x = 10000.0 / 3;
            System.out.printf("%8.2f",x);   // 3333.33
            double x1 = 10000000000.0 / 3;
            System.out.printf("%8.2f",x1);   // 3333333333.33
 
    %8.2f的含义是可以用8个字符的宽度和小数点后两个字符的精度打印x。也就是说,打印输出一个空格和7个字符(包括小数点)。当然,如果结果的总位数超过8,还是整数部分按实际展示,小数部分还是只显示2位。
 
    在printf中,可以使用多个参数,例如:
        System.out.printf("Hello,%s. Next year . you'll be %d", name, age);
 
 
            Scanner sc = new Scanner(System.in);
            
            System.out.println("请输入您的姓名");
            String name = sc.nextLine();
            System.out.println("请输入您的年龄");
            int age = sc.nextInt();
            
            System.out.printf("Hello, %s. Next year . you'll be %d .", name, age);
 
    每一个以%字符开始的格式说明符都用相应的参数替换。
 
转换符
类型
举例
d
十进制整数
159
x
十六进制整数
9f
o
八进制整数
237
f
定点浮点数
15.9
e
指数浮点数
1.59e+01
g
通用浮点数
1537.00
a
十六进制浮点数
0x1.fccdp3
s
字符串
Hello
c
字符
H
b
布尔
True
h
散列码
42628b2
tx或Tx
日期时间
已经过时,应当改为使用java.time类
%
百分号
%
n
与平台有关的行分隔符
--
 
    另外,还可以给出控制格式化输入的各种标志。例如,逗号标志增加了分组的分隔符。
 
标志
目的
举例
+
打印正数和负数的符号"%+f",e
 
空格
在正数之前添加空格"% 10d",e
| 3333.33|
0
数字前面补0"%010d",e
003333.33
-
左对齐
|3333.33  |
(
将负数括在括号内
(3333.33)
,
添加分组分隔符
3,333.33
#(对于f格式)
包含小数点
3,333.
#(对于x或0格式)
添加前缀0x或0
0xcafe
$
给定被格式化的参数索引。例如,%1$d, %1$x将以十进制和十六进制格式打印第一个参数"%1$x",e
159 9f
<
格式化前面说明的数值,例如,%d%<x以十进制和十六进制打印同一个数值"%d %<x",e
159 9f
 
     注释:可以使用s转换符格式化任意的对象。对于任意实现了Formattable接口的对象都将调用formatTo方法;否则将调用toString方法,它可以将对象转换为字符串。

猜你喜欢

转载自www.cnblogs.com/avention/p/10123703.html