在Java编程的世界中,格式化输出是一个不可或缺的技能。它不仅让代码的输出结果更加美观,而且也便于阅读和理解。今天,我们就来深入探讨Java中的格式化输出功能,通过一系列实例,一探究竟。
基础格式化
在Java中,java.util.Formatter
类提供了类似于C语言printf
的格式化字符串功能。例如:
System.out.printf("abc%n456%n");
输出结果为:
abc
456
字符串格式化
字符串可以通过 %s
或 %S
格式化符号进行输出,其中 %S
会将字符串转换为大写:
System.out.printf("%s%n", "this is my string");
System.out.printf("%S%n", "this is my string");
输出结果分别为:
this is my string
THIS IS MY STRING
布尔值格式化
布尔值的格式化使用 %b
或 %B
,它们会将 null
或 false
转换为 false
,其他值转换为 true
:
System.out.printf("%b%n", null);
System.out.printf("%B%n", false);
输出结果为:
false
FALSE
字符格式化
字符格式化使用 %c
或 %C
,它们会将输入转换为对应的字符或大写字符:
System.out.printf("%c%n", 'a');
System.out.printf("%C%n", 'a');
输出结果为:
a
A
填充与对齐
格式化输出中,可以通过在 %
后添加数字和 -
符号来实现左填充或右对齐:
System.out.printf("Result: %20s%n", "example");
System.out.printf("Result: %-20s%n", "example");
输出结果为:
Result: example
Result: example
精度控制
精度用于限制输出字符的数量,对于浮点数则用于控制小数点后的位数:
System.out.printf("%2.2s%n", "Hi there!");
System.out.printf("[%6.4s]%n", "What's up?");
输出结果为:
Hi
[ What]
数字格式化
对于整数,可以使用 %d
进行格式化,也可以通过添加 ,
来实现千位分隔:
System.out.printf("%,d%n", 1000000);
输出结果为:
1,000,000
科学记数法
浮点数可以使用 %e
或 %E
格式化为科学记数法:
System.out.printf("%1.2e%n", 123.45);
输出结果为:
1.23e+02
索引引用
格式化字符串中可以通过索引引用来复用同一个参数多次:
String test = "myString";
System.out.printf("%1$1.2s - %1$1.4s", test);
输出结果为:
my - mySt
日期时间格式化
日期时间格式化提供了多种格式化选项,例如小时、分钟、秒等:
System.out.printf("Hours: %tH%n", new Date());
System.out.printf("Mins: %tM%n", new Date());
System.out.printf("Secs: %tS%n", new Date());
输出结果将显示当前时间的小时、分钟和秒。
通过上述的实例,我们可以看到Java中的格式化输出功能是多么的强大和灵活。掌握了这些技能,无论是在控制台输出还是在生成报告时,都能够让你的程序输出更加专业和易于理解。