Java学习笔记——格式化输出printf相关问题

例子来自:https://www.runoob.com/w3cnote/java-printf-formate-demo.html

printf 方法的第一个参数为输出的格式,第二个参数是可变长的,表示待输出的数据对象

// 支持多个参数时,可以在%s之间插入变量编号,1$表示第一个字符串,3$表示第3个字符串
System.out.printf("%1$s = %3$s %2$s%n", "Name", "san", "Zhang");

输出为

Name = Zhang san

%num$为占位符:

  • %1$代表的是 “Name”
  • %2$代表的是"san"
  • %3$代表的是"Zhang"

以下例子为年月日的格式化,与上述内容同理:

/*** 输出日期类型***/
// %t表示格式化日期时间类型,%T是时间日期的大写形式,在%t之后用特定的字母表示不同的输出格式
Date date = new Date();
long dataL = date.getTime();

System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL);
System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL);

System.out.printf("%1$s %2$tB %2$td, %2$tY%n", "Due date:", date);
//使用 < 标志,表明先前被格式化的参数要被再次使用
System.out.printf("%s %tB %<te, %<tY%n", "Due date:", date);

System.out.printf("本地月份简称:%tb%n",date);
System.out.printf("本地月份全称:%tB%n",date);

输出为

21-11-04; 21-11-04
2021-November-04; 2021-Nov-04
Due date: November 4, 2021
Due date: November 4, 2021
本地月份简称:Nov
本地月份全称:November

%t之后用:

  • j为一年的天数
  • b为月份简称,B为月份全称
  • a为星期简称,A为星期全称
  • C为年前两位,y为年后两位,Y为四位数年份
  • m为月份,d为日(二位,不够补零),e为日(一位不补零)

此外,%n 和 \n 的区别如下:
转自:https://zhidao.baidu.com/question/70591997.html

  1. %n会根据平台,自动转化成合适的换行符。Unix系统下的换行符是\n,Windows系统下的换行符是\r\n,%n是这两种换行符的整合,在不同平台下有不同的行为,通用性更好。
  2. \n适用于大部分平台
  3. %n只能用在printf语句中,无法用在println和print中
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值