这可能是将String.format格式化讲解的最清楚的一篇文章

  • Post author:
  • Post category:其他



点击蓝色“小哈学Java


”关注我哟


加个“


星标


”,第一时间获取小哈推送的文章哦!



640?wx_fmt=jpeg

来源:http://t.cn/Ai9hZzyr

目录

  • 一、引言

  • 二、重装

  • 三、占位符

  • 四、超过一项以上的参数时

  • 五、转换符

  • 六、转换符的标志

  • 七、对字符串进行格式化

  • 八、对整数进行格式化

  • 九 、对浮点数进行格式化

  • 十、对日期时间进行格式化

一、引言

String类的format()方法用于创建格式化的字符串以及连接多个字符串对象。熟悉C语言应该记得C语言的sprintf()方法,两者有类似之处。format()方法有两种重载形式。

二、重载

// 使用当前本地区域对象(Locale.getDefault()),制定字符串格式和参数生成格式化的字符串	
String String.format(String fmt, Object... args);	
// 自定义本地区域对象,制定字符串格式和参数生成格式化的字符串	
String String.format(Locale locale, String fmt, Object... args);

三、占位符

格式化说明最多会有5个部分(不包括%符号) . 下面的[]符号里面都是选择性的项目,因此只有%与type是必要的. 格式化说明的顺序是有规定的,必须要以这个顺序章指定.

640?wx_fmt=png

实例:

640?wx_fmt=png

四、超过一项以上的参数时

把新的参数加到后面,因此会有3个参数来调用format()而不是两个,并且在第一个参数中,也就是格式化串中,会有两个不同的格式化设定,也就是两个%开头的字符组合,第二个会应用在第一个%上面,第三个参数会用在第二%上,也就是参数会依照顺序应用在%上面” 。

 int one = 123456789;	
 double two = 123456.789;	
 String s = String.format("第一个参数:%,d 第二个参数:%,.2f", one, two);	
 System.out.println(s);

640?wx_fmt=png

五、转换符

640?wx_fmt=png

六、转换符的标志

640?wx_fmt=png

七、对字符串进行格式化


示例——将”hello”格式化为”hello “(左对齐)

  String raw = "hello word";	
  String str = String.format("|%-15s|", raw);	
  System.out.println(str);

640?wx_fmt=png

八、对整数进行格式化


示例——将-1000显示为(1,000)

int num = -1000;	
String str = String.format("%(,d", num);	
System.out.println(str);

640?wx_fmt=png

九 、对浮点数进行格式化

double num = 123.456789;	
System.out.print(String.format("浮点类型:%.2f %n", num));	
System.out.print(String.format("十六进制浮点类型:%a %n", num));	
System.out.print(String.format("通用浮点类型:%g ", num));

640?wx_fmt=png

十、对日期时间进行格式化

日期的转换符

640?wx_fmt=png

时间的转换符

640?wx_fmt=png

实例

640?wx_fmt=png

640?wx_fmt=png

免费无套路分享 | 面试&学习福利资源

最近在网上发现一个不错的 PDF 资源《Java 核心知识&面试.pdf》,内容覆盖很广,Java 核心基础、Java 多线程、高并发、Spring、微服务、Netty 与 RPC、Zookeeper、Kafka、RabbitMQ、Habase、设计模式、负载均衡、分布式缓存、Hadoop、Spark、Storm、云计算等

获取方式: 关注本公众号:

小哈学Java

, 后台回复

资源

,既可

免费无套路获取资源链接

哦!

640?


更多推荐内容



↓↓↓


为什么阿里巴巴代码规约要求避免使用 Apache BeanUtils 进行属性复制






记一次中台数据传输同步Elasticsearch失败的车祸现场


一文教您通过 Docker 快速搭建各种测试环境(Mysql, Redis, ES, MongoDB) | 建议收藏


阿里云OSS被盗链?上个月图床流量耗费50G+,请求次数10W+,什么鬼?


一台Java服务器跑多少个线程,性能最佳呢?


干货 | 关于 Mybatis 缓存,面试官都未必知道的这么详细


惊了!7 行代码优雅地实现 Excel 文件导出功能?


如果你喜欢本文


请长按二维码,关注小哈学Java

640?wx_fmt=jpeg

转发朋友圈,是对我最大的支持哟


如果你喜欢这篇文章,在看,转发吧。


相信明天更加美好 (*^__^*)