java print 格式化输出_格式化打印输出

# 格式化打印输出

早些时候,您看到了使用 print 和 println 打印字符串到标准输出(System.out)的方法。

由于所有的数字都可以转换为字符串(正如你将在本课稍后看到的),你可以使用这些方法打印出任意字符串和数字的混合。

Java 编程语言还有其他一些方法,可以让您在包含数字时对打印输出进行更多的控制。

# printf 和 format 方法

java.io 包中的 PrintStream 类,可以用来替换 print 和 println 方法。format 和 printf 和他们是等价的。

System.out 就是一个 PrintStream 实例。所以之前用 System.out/print/println 方法的地方都可以使用 format 和 printf 来代替;例如

这两种方法的语法是一样的

其中 format 是指定要使用的格式的字符串,args 是使用该格式打印的变量的列表。一个简单的例子是

第一个参数,format 是一个格式字符串,指定如何 args 格式化第二个参数中的对象。

格式字符串包含纯文本以及格式说明符,格式说明符是格式化参数的特殊字符(Object... args 称为可变参数,这意味着参数的数量可能会有所不同。)

格式说明符以百分号(%)开头,并以转换器结束。转换器是一个字符,指示要格式化参数的类型。

在百分号(%)和转换器之间,可以有可选的标志和说明符。有许多转换器,标志和说明符,这些都记载在 java.util.Formatter 中

这里是一个基本的例子:

%d 指定是十进制整数。%n 是一个平台无关的换行符。输出是:

printf 和 format 方法被重载。每个版本都有以下语法:

要在语法系统中打印数字 %f 转化成十进制浮点数,用逗号代替小数点,可以使用:

# 一个例子

下表列出了示例程序中使用的一些转换器和标志,他们在表格后面。 Converter Flag Explanation d - 十进制整数。

f - 浮动。

n - 适合运行应用程序的平台的新行字符。你应该总是使用 %n,而不是 \n。

tB - 日期和时间转换 - 地区特定的月份全名

td, te - 日期和时间转换 - 每月两位数的日期。td 根据需要具有前导零,te 不。

ty, tY - 日期和时间转换 - ty = 两位数年份,tY = 四位数年份。

tl - 日期和时间转换为 12 小时制。

tM - 日期和时间转换 - 以 2 位数分钟,必要时带前导零。

tp - 日期和时间转换 - 特定于区域的 am / pm(小写)。

tm - 日期和时间转换 - 两位数的月份,必要时带前导零。

tD - 日期和时间转换日期为 %tm%td%ty

- 08 八个字符的宽度,必要时带前导零。

- + 包括标志,无论是正还是负。

- , 包含特定于语言环境的分组字符

- - 左对齐..

- .3 小数点后三位。

- 10.3 宽度为十个字符,右对齐,小数点后三位。

TIP

本节中的讨论仅涵盖 format 和 printf 方法的基础知识。进一步的细节可以 基础 I/O 格式化中找到 。

使用 String.format 创建的字符串在下一个章节 字符串。

# DecimalFormat 类

您可以使用 java.text.DecimalFormat 该类来控制前导和尾随零,前缀和后缀的显示,分组(千位)分隔符和小数点分隔符。

DecimalFormat 在数字格式化方面提供了很大的灵活性,但它可以使你的代码更加复杂。

输出

下表解释了每一行的输出 Value Pattern Output Explanation 123456.789 ###,###.### 123,456.789 井号(#)表示数字,逗号是分组分隔符的占位符,而句号是小数点分隔符的占位符。

123456.789 ###.## 123456.79 保留两位小数,该 format 方法通过四舍五入来处理。

123.78 000000.000 000123.780 指定前导和尾随零,因为 0 字符被用来代替井号(#)。

12345.67 $###,###.### $12,345.67 美元符号在数字的最左边

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值