【Java】:你知道字符串的格式化输出吗?

111 阅读3分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第18天,点击查看活动详情

1️⃣前言

今天笔记的内容是:

  • 有关Java字符串的格式化输出

2️⃣内容

printf()概述

java沿用了C中的printf方法,使得java也能进行格式化输出。举个例子:

double data = 123.45678;
System.out.printf("%7.2f", data); //=> 123.46

在上述例子中,调用了System.out.printf方法,"%7.2f表示数据以7个字符的宽度输出,并且小数点后为2位精度。

下面是各类用于printf参数中的格式转换说明符的简单记录:

  • %d:十进制整数
  • %s:字符串
  • %f:定点浮点数
  • %x:十六进制整数
  • %e:指数浮点数
  • %o:八进制整数
  • %c:字符
  • %b:布尔
  • %h:散列码
  • %tx:日期时间
  • %g:通用浮点数
  • %a:十六进制浮点数
  • %n:与平台有关的行分割符

需要注意,该方法可以设置多个参数。举个例子:

String name = "Jack";
int age = 19;
System.out.printf("Hello, my name is %s. I'm %d years old.", name, age);

输出结果:Hello, my name is Jack. I'm 19 years old.

格式化输出日期时间

对于Date类,我们可以利用printf()方法来格式化输出日期或时间。

举个例子,我们需要输出当前的日期和时间,如下所示:

import java.util.Date;
System.out.printf("%tc", new Date());  // 周二 8月 16 20:00:00 CST 2022

下面是有关Date类的部分格式转换符的记录:

  • c:查看完整的日期和时间
  • C:查看年份的前两个数字
  • y:查看年份的后两个数字
  • B:查看月份的完整拼写
  • b:查看月份的缩写
  • h:查看月份的缩写
  • m:查看月份,数值型,有补零
  • d:查看今天几号,补零
  • e:查看今天几号,不补零
  • A:查看今天星期几,完整拼写
  • a:查看今天星期几,省略拼写
  • H:小时(24小时型,有补零)
  • I:小时(12小时型,有补零,注意,这是个大写的i)
  • k:小时(24小时型,不补零)
  • l:小时(12小时型,不补零,注意,这是个小写的L)
  • M:查看分钟
  • S:查看秒数
  • L:查看毫秒
  • j:三位数的年中的日子,前面补0,其值在001~366之间
  • F:ISO 8601日期
  • D:美国格式的日期
  • Y:查看完整年份
  • T:查看完整时间(24小时型)
  • r:查看完整时间(12小时型)
  • P:上午或下午的大写标志
  • p:上午或下午的小写标志
  • Z:查看时区

更具体的看下面思维导图:

格式化输出日期类.png

在熟悉上述这些Date类转换符后,我们可以整合到一个格式化字符串,用于打印Date信息,注意,此时我们需要指出要被格式化的参数的索引,索引必须跟在%后面,并且以$终止。

举个例子:

System.out.printf("%1$s %2$tY年 %2$tB %2$te号", "当前时间:", new Date());

输出结果是:

当前时间: 2022年 八月 16号

3️⃣写在最后

好了,今天的笔记就记到这里。