【老白学 Java】数字格式化

数字格式化

文章来源:《Head First Java》修炼感悟。

很多时候需要对数字或日期进行格式化操作,来达到某些输出效果。Java 的 Formatter 类提供了很多扩展性功能用于字符串的格式化,只要调用 String 静态方法 format() ,传入参数并设定格式就可以得到满意的字符串。

一、基本语法

1、方法定义

java 复制代码
public static String format(String format, Object... args);

2、 方法参数

  • format 格式字符串,描述如何格式化,必须以格式说明符 % 开始;
  • args 格式字符串中由格式说明符引用的参数。如果还有格式说明符以外的参数,则忽略。这个参数是可变参数,也可以为 0。

3、方法返回值

  • 返回格式化后的字符串。

4、格式字符串

  • %,格式说明符,表示用它后面的格式去格式化对应的原始数据;
  • flags,标识符,例如以逗号分隔数字,或者为数字添加正负号等;
  • width,输出的字符串最小宽度(字符数);
  • precision,输出位数,例如指定小数位数,截取字符个数等;
  • type,数据类型,必须指定。

老白提醒: 以上是完整格式,其中方括号中的选项可以省略,但格式说明符和类型符号不能省略。

二、常用格式设定

  • %d 十进制整数,以逗号分隔,例如:
java 复制代码
String.format("%,d", 1000000000);
// 输出结果:1,000,000,000
  • %f,浮点数,默认保留6位小数点(四舍五入),例如:
java 复制代码
String.format("%f", 4387.2983749872);
// 输出结果:4387.298375
  • %.nf,浮点数,保留 n 位小数点(四舍五入),例如:
java 复制代码
String.format("%.2f", 4387.2983749872);
// 输出结果:4387.30
  • %nf,浮点数右对齐,输出至少占据 n 个字符宽度,例如:
java 复制代码
String.format("|%,6.1f|", 42.000);
// 输出结果:|  42.0|
  • %-nf,浮点数左对齐,输出至少占据 n 个字符宽度,例如:
java 复制代码
String.format("|%,-6.1f|", 42.000);
// 输出结果:|42.0  |
  • %.ns,字符串,截取前 n 个字符,例如:
java 复制代码
String.format("%.5s", "hello world");
// 输出结果:hello
  • %0nd,在前面补零,直到满足 n 个字符宽度,例如:
java 复制代码
String.format("%08d", 123);
// 输出结果:00000123

三、格式化多个参数

format() 方法可以同时格式化多个参数,例如有这样一个字符串:
The rank is 20,456,654 out of 100,567,890.24.

要想达到上述效果,需要对字符串中的两个数字分别进行格式化。 例如:

java 复制代码
int one = 20456654;
double two = 100567890.243907;
String s = String.format("The rank is %,d" out of %,.2f, one, two);

// 输出结果:The rank is 20,456,654 out of 100,567,890.24

参数 one 对应第一个格式标识符,two 对应第二个格式标识符,允许后面跟随多个参数。


《 上一篇 人性化的 Autoboxing 下一篇 日期/时间格式化 》
相关推荐
qq_348231855 分钟前
Spring Boot开发过程中常见问题
java·spring boot·后端
程序修理员7 分钟前
java+vue实现文件下载进度条
java·开发语言·vue.js
梁正雄12 分钟前
10、Python面向对象编程-2
开发语言·python
毕设源码-赖学姐15 分钟前
【开题答辩全过程】以 高校教师管理系统设计与实现为例,包含答辩的问题和答案
java·eclipse
Jo乔戈里16 分钟前
Python复制文件到剪切板
开发语言·python
不会代码的小猴19 分钟前
C++的第十一天笔记
java·前端·jvm
雨中飘荡的记忆21 分钟前
Javassist实战
java
陈文锦丫29 分钟前
微服务-----
java·数据库·微服务
任子菲阳29 分钟前
学Java第五十三天——IO综合练习(1)
java·开发语言·爬虫