Java的格式化输出

参考https://www.cnblogs.com/qunqun/p/8656217.html
总结

  1. Formatter类,将一种形式的字符串转化为另一种形式,常用的System.out.format(),System.out.printf()和String.format()都是它的封装
    Usage:
String name = "huhx"; int age = 22; Formatter formatter = new Formatter(System.out); formatter.format("My name is %s, and my age is %d ", name, age); formatter.close(); String msg = new Formatter().format("My name is %s, and my age is %d ", name, age).toString();

主要用法是format()方法,难点是格式化字符的使用
  1. 格式化字符的常见用法,参考https://blog.csdn.net/weixin_39590058/article/details/79875921
int year = 2020; //直接打印数字 System.out.format("%d%n",year); //用%n或\n没差,但%n和平台无关 //总长度为8,默认右对齐 System.out.printf("%8d%n",year); //用printf还是format没差 //总长度为8,默认左对齐 System.out.printf("%-8d%n",year); //总长度为8,不够补0 System.out.printf("%08d%n",year); //千位分隔符 System.out.printf("%,8d%n",year*10000); //小数点位数 System.out.format("%.2f%n",Math.PI);

【Java的格式化输出】补充一些
d 十进制
x 十六进制
o 八进制
f 浮点数
e 指数形式浮点数
s 字符串
c 字符
+保留正负号
3. 日期的格式化
都知道日期是从计算机纪元开始的时间戳转化的结构体
有两种方式可以对日期格式化
SimpleDateFormat 是Format的子类,但是与Formatter无关
Usage:
String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());

Formatter本身也可以对日期格式化,但相对不那么方便(只能以某种规定的形式)
Usage
System.out.printf("%tc%n", new Date()); System.out.printf("%tF%n", new Date()); System.out.printf("%tD%n", new Date()); System.out.printf("%tT%n", new Date()); System.out.printf("%tr%n", new Date()); System.out.printf("%tR%n", new Date()); System.out.printf("%tY%n", new Date()); System.out.printf("%tm%n", new Date()); System.out.printf("%td%n", new Date()); System.out.printf("%ts%n", new Date()); /**output: 星期一 九月 16 18:09:33 CST 2019 2019-09-16 09/16/19 18:09:34 06:09:34 下午 18:09 2019 09 16 1568628574(时间戳,以秒为单位,%tQ以毫秒为单位) **/

    推荐阅读