博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
String.format详解
阅读量:6195 次
发布时间:2019-06-21

本文共 3476 字,大约阅读时间需要 11 分钟。

转载自:(http://www.cnblogs.com/fsjohnhuang/p/4094777.html)

  目录                              

   

   

   

   

   

   

   

   

 

 

 

一、前言                            

   String.format 作为文本处理工具,为我们提供强大而丰富的字符串格式化功能,为了不止步于简单调用 String.format(”Hello %s”, “John”);

,下面将笔记整理并记录下来。

 

二、重载方法                          

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

 

三、占位符                                   

  占位符完整格式为: %[index$][标识]*[最小宽度][.精度]转换符 。

  针对不同数据类型的格式化,占位符的格式将有所裁剪。

  % ,占位符的其实字符,若要在占位符内部使用%,则需要写成 %% 。

  [index$] ,位置索引从1开始计算,用于指定对索引相应的实参进行格式化并替换掉该占位符。

  [标识] ,用于增强格式化能力,可同时使用多个 [标识] ,但某些标识是不能同时使用的。

  [最小宽度] ,用于设置格式化后的字符串最小长度,若使用 [最小宽度] 而无设置 [标识] ,那么当字符串长度小于最小宽度时,则以左边补空格的方式凑够最小宽度。

  [.精度] ,对于浮点数类型格式化使用,设置保留小数点后多少位。

  转换符 ,用于指定格式化的样式,和限制对应入参的数据类型。

 

四、对字符、字符串进行格式化                    

  占位符格式为: %[index$][标识][最小宽度]转换符 

  示例——将”hello”格式化为”  hello”

String raw = "hello";String str = String.format("%1$7s", raw);// 简化//String str = String.format("%7s", raw);

  示例——将”hello”格式化为”hello  ”

String raw = "hello";String str = String.format("%1$-7s", raw);// 简化//String str = String.format("%-7s", raw);

可用标识:

   -,在最小宽度内左对齐,右边用空格补上。

可用转换符:

   s,字符串类型。

   c,字符类型,实参必须为char或int、short等可转换为char类型的数据类型,否则抛IllegalFormatConversionException异常。

   b,布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false。

   n,平台独立的换行符(与通过 System.getProperty(”line.separator”) 是一样的)

 

五、对整数进行格式化                       

  占位符格式为: %[index$][标识]*[最小宽度]转换符 

  示例——将1显示为0001

int num = 1;String str = String.format("%04d", num)

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

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

可用标识:

-,在最小宽度内左对齐,不可以与0标识一起使用。 0,若内容长度不足最小宽度,则在左边用0来填充。

#,对8进制和16进制,8进制前添加一个0,16进制前添加0x。 +,结果总包含一个+或- 号。 空格,正数前加空格,负数前加- 号。 ,,只用与十进制,每3位数字间用,分隔。 (,若结果为负数,则用括号括住,且不显示符号。

可用转换符:

b,布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false。d,整数类型(十进制)。x,整数类型(十六进制)。o,整数类型(八进制)n,平台独立的换行符, 也可通过System.getProperty("line.separator")获取

 

六、对浮点数进行格式化                        

   占位符格式为: %[index$][标识]*[最小宽度][.精度]转换符 

   示例:

double num = 123.4567899;System.out.print(String.format("%f %n", num)); // 123.456790 System.out.print(String.format("%a %n", num)); // 0x1.edd3c0bb46929p6 System.out.print(String.format("%g %n", num)); // 123.457

可用标识:

-,在最小宽度内左对齐,不可以与0标识一起使用。0,若内容长度不足最小宽度,则在左边用0来填充。
#,对8进制和16进制,8进制前添加一个0,16进制前添加0x。 +,结果总包含一个+或- 号。 空格,正数前加空格,负数前加- 号。 ,,只用与十进制,每3位数字间用,分隔。 (,若结果为负数,则用括号括住,且不显示符号。

可用转换符:

b,布尔类型,只要实参为非false的布尔类型,均格式化为字符串true,否则为字符串false。n,平台独立的换行符, 也可通过System.getProperty("line.separator")获取。f,浮点数型(十进制)。显示9位有效数字,且会进行四舍五入。如99.99。a,浮点数型(十六进制)。e,指数类型。如9.38e+5。g,浮点数型(比%f,%a长度短些,显示6位有效数字,且会进行四舍五入)

 

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

   占位符格式为: %[index$]t转换符 

   示例:

Date now = new Date();String str = String.format("%tF", now); // 2014-10-12

可用转换符

  1. 日期的转换符

c,星期六 十月 27 14:21:20 CST 2007F,2007-10-27D,10/27/07r,02:25:51 下午T,14:28:16R,14:28b, 月份简称B, 月份全称a, 星期简称A, 星期全称C, 年前两位(不足两位补零)y, 年后两位(不足两位补零)j, 当年的第几天m, 月份(不足两位补零)d, 日期(不足两位补零)e, 日期(不足两位不补零)

  2. 时间的转换符

H, 24小时制的小时(不足两位补零)k, 24小时制的小时(不足两位不补零)I, 12小时制的小时(不足两位补零)i, 12小时制的小时(不足两位不补零)M, 分钟(不足两位补零)S, 秒(不足两位补零)L, 毫秒(不足三位补零)N, 毫秒(不足9位补零)p, 小写字母的上午或下午标记,如中文为“下午”,英文为pmz, 相对于GMT的时区偏移量,如+0800Z, 时区缩写,如CSTs, 自1970-1-1 00:00:00起经过的秒数Q, 自1970-1-1 00:00:00起经过的豪秒

 

八、其他转换符                          

 <,用于格式化前一个转换符所描述的参数。

 示例:

int num = 1000;String str = String.format("%d %<,d", num);// 结果"1000 1,000

 

九、总结                              

  暂时写到这里吧,以后用到其他的再补充上去!

  尊重原创,转载请注明来自: ^_^肥仔John

  

参考                                

http://blog.csdn.net/lonely_fireworks/article/details/7962171

你可能感兴趣的文章
openstack(一)入门
查看>>
使用curl / wget命令上传下载FTP
查看>>
LVM系列4
查看>>
不相交集类
查看>>
python中try except处理程序异常的三种常用方法
查看>>
Linux-静态链接库和动态链接库
查看>>
用rsync进行文件同步
查看>>
Win10如何关闭自动更新服务
查看>>
用Google地图为你的网站添加地图之二
查看>>
unit 8 文档练习
查看>>
如何将钉钉集成到FineReport插件中
查看>>
系统封装教程集合电子书
查看>>
STL—内存的配置与释放
查看>>
salt之自定义grains
查看>>
body加载多个onload
查看>>
U盘装XP,win7,维护盘等东西的.新工具——wintoflash
查看>>
Shell 脚本远程批量执行命令
查看>>
Ubuntu 控制台(tty) 改变字体大小
查看>>
ExecuteThread: '8' for queue: 'weblogic.kernel.Default (self-tuning)' 异常解决办法
查看>>
百度.搜狐...2015产品经理面试题
查看>>