Javaformat的⽤法String  format  API
static ( l,  format, ... args)
使⽤指定的区域设置,格式字符串和参数返回格式化的字符串。
static ( format, ... args)
使⽤指定的格式字符串和参数返回格式化的字符串。
在format第⼀个参数中传⼊相应的转换符就能代表特定的信息,在第⼆个参数中传⼊具体的值完成相应的替换,相当于可以有⼀定的模版⽅式,然后在实际填充的时候⽤具体的值去填充即可。
String str=null;
str=String.format("Hi,%s", "飞龙");          // 格式化字符串
System.out.println(str);                            // 输出字符串变量str的内容
System.out.printf("字母a的⼤写是:%c %n", 'A');
System.out.printf("3>7的结果是:%b %n", 3>7);
System.out.printf("100的⼀半是:%d %n", 100/2);
System.out.printf("100的16进制数是:%x %n", 100);
System.out.printf("100的8进制数是:%o %n", 100);
System.out.printf("50元的书打8.5折扣是:%f 元%n", 50*0.85);
System.out.printf("上⾯价格的16进制数是:%a %n", 50*0.85);
System.out.printf("上⾯价格的指数表⽰:%e %n", 50*0.85);
System.out.printf("上⾯价格的指数和浮点数结果的长度较短的是:%g %n", 50*0.85);
System.out.printf("上⾯的折扣是%d%% %n", 85);
System.out.printf("字母A的散列码是:%h %n", 'A');
format参数中可以包含不需要转化的字符串,这些字符串是你写什么,最终就输出什么。同时还包含⼀些特殊格式的内容,来指定将哪个对象来转换,以及转换成什么形式。这种特殊的格式通通以%index$开头,index从1开始取值,表⽰将第index个参数拿进来进⾏格式化。这⼀点⽐c语⾔要强⼀点, c语⾔只能按照参数的顺序依次格式化,⽽java可以选择第n个参数来格式化。由于该函数可以对任意⼀个对象进⾏格式化,不同的对象适⽤的参数也不同,所以要区分对待.
1.对整数进⾏格式化
形式:%[index$][标识][最⼩宽度]转换⽅式
格式化字符串由四个部分组成.
%[index$]---对index个参数进⾏格式化
'-'    在最⼩宽度内左对齐(默认是右对齐),不可以与“⽤0填充”同时使⽤
'#'    只适⽤于8进制和16进制,8进制时在结果前⾯增加⼀个0,16进制时在结果前⾯增加0x
'+'    结果总是包括⼀个符号(⼀般情况下只适⽤于10进制,若对象为BigInteger才可以⽤于8进制和16进制)
'  '    正值前加空格,负值前加负号(⼀般情况下只适⽤于10进制,若对象为BigInteger才可以⽤于8进制和16进制)
'0'    结果将⽤零来填充
','    只适⽤于10进制,每3位数字之间⽤“,”分隔
'('    若参数是负数,则结果中不添加负号⽽是⽤圆括号数字括起来(同‘+’具有同样的限制)
[转换⽅式]实际代表的是所传⼊的这个数字采⽤的是什么进制的表⽰.转换⽅式包含如下⼏类:
d-⼗进制      o-⼋进制          x或X-⼗六进制
⽇期和时间字符串格式化
在程序界⾯中经常需要显⽰时间和⽇期,但是其显⽰的格式经常不尽⼈意,需要编写⼤量的代码经过各种算法才得到理想的⽇期与时间格式。字符串格式中还有%tx转换符没有详细介绍,它是专门⽤来格式
化⽇期和时间的。%tx转换符中的x代表另外的处理⽇期和时间格式的转换符,它们的组合能够将⽇期和时间格式化成多种格式。
1.常见⽇期时间格式化
格式化⽇期与时间的转换符定义了各种格式化⽇期字符串的⽅式,其中最常⽤的⽇期和时间的组合格式如下:
使⽤的时候⽤"%t[c/F/D/r/T/R]"这样的形式即可.
---------------------------------------------------------------------------------------------------------------------------
Date date=new Date();                                                                    // 创建⽇期对象
System.out.printf("全部⽇期和时间信息:%tc%n",date);                // 格式化输出⽇期或时间
System.out.printf("年-⽉-⽇格式:%tF%n",date);
System.out.printf("⽉/⽇/年格式:%tD%n",date);
System.out.printf("HH:MM:SS PM格式(12时制):%tr%n",date);
System.out.printf("HH:MM:SS格式(24时制):%tT%n",date);
System.out.printf("HH:MM格式(24时制):%tR",date);
---------------------------------------------------------------------------------------------------------------------------
在处理⽇期的时候还会遇到的是获得当前是第⼏⽉,是今年的第⼏天这样的问题,这样的问题也可以在String.format这个函数中得到。
Date date = new Date();
System.out.println("%tb",date)//这是得到操作系统语⾔的⽉份,中⽂下当然就是中⽂
System.out.println(Locale.US,"%tb",date)//这是得到英⽂的⽉份的简称
格式化时间字符串
和⽇期格式转换符相⽐,时间格式的转换符要更多、更精确。它可以将时间格式化成时、分、秒甚⾄时毫秒等单位。格式化时间字符串的转换符如下表:
-------------------------------------------------------------------------------------------------------------------------------
Date date=new Date();                              // 创建⽇期对象
System.out.printf("2位数字24时制的⼩时(不⾜2位前⾯补0):%tH%n",date);
System.out.printf("2位数字12时制的⼩时(不⾜2位前⾯补0):%tI%n",date);
System.out.printf("2位数字24时制的⼩时(前⾯不补0):%tk%n",date);
System.out.printf("2位数字12时制的⼩时(前⾯不补0):%tl%n",date);
System.out.printf("2位数字的分钟(不⾜2位前⾯补0):%tM%n",date);
System.out.printf("2位数字的秒(不⾜2位前⾯补0):%tS%n",date);
System.out.printf("3位数字的毫秒(不⾜3位前⾯补0):%tL%n",date);
System.out.printf("9位数字的毫秒数(不⾜9位前⾯补0):%tN%n",date);
String str=String.format(Locale.US,"⼩写字母的上午或下午标记(英):%tp",date);
System.out.println(str);                          // 输出字符串变量str的内容
System.out.printf ("⼩写字母的上午或下午标记(中):%tp%n",date);
System.out.printf("相对于GMT的RFC822时区的偏移量:%tz%n",date);
System.out.printf("时区缩写字符串:%tZ%n",date);
输出printf用什么格式System.out.printf("1970-1-1 00:00:00 到现在所经过的秒数:%ts%n",date);
System.out.printf("1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ%n",date);
-------------------------------------------------------------------------------------------------------------------------------

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。