字符串格式化拼接

1 String直接通过+相加

2 Stringbuffer来append

3 MessageFormat.format

4 String.format

5 其它

先说下性能  Stringbuffer来append 要优于其它方式

再说下方便  String.format 是最方便的,但是性能要慢

 

下面是String.format的使用:

    //1 字符串格式化    String类型 %s
    //如果后面的数组参数个数超过占位符数,能够正常格式化显示,因为是按下标替代。
    //如果后面的数组参数个数少于占位符数,则会抛出异常     java.util.MissingFormatArgumentException,意思就是某个占位符缺失格式化的参数值。
    //    String stringTest =     String.format("测试字符串格式化(%s,%s)", "aaa","bbb");//正确适用字符串格式化
    //    String stringTest =     String.format("测试字符串格式化(%s)", "aaa");//正确适用字符串格式化
    //    String stringTest =     String.format("测试字符串格式化(%s)", "aaa","bbb");//能正常显示aaa,按下标替代格式化,bbb是多余的
    //    String stringTest =     String.format("测试字符串格式化(%s,%s,%s)", "aaa","bbb");//错误使用 MissingFormatArgumentException
    //字符格式化 Char类型 %c
    //String charTest =     String.format("测试字符格式化%c", "A");//错误使用 "A"应该写成'A'
    //String charTest =     String.format("测试字符格式化%c", 'A');//正确适用字符格式化
    //布尔值格式化 Boolean类型 %b    
    //String boolTest = String.format("测试布尔值格式化%b", 2-4);    
    //整数格式化 %d 十进制 %x 十六进制 %o 八进制
    //String IntegerTest = String.format("测试整数值格式化%d", 99);
    //浮点数格式化 %f %a十六进制浮点     
    //String FloatTest = String.format("测试浮点值格式化%f", 99.9f);//将用默认的6位小数输出
    //String FloatTest = String.format("测试浮点值格式化%.1f", 99.9f);//.1保留1位小数
    //百分比格式化 %%
    //String pecentTest = String.format("测试百分比格式化%d%%", 70);//70%   %d占位整数 %%占位% 最后拼接70%
    //换行  %n
    //String newlineTest = String.format("测试换行格式化%n被换行显示的文字");
    //数值加正负 %+d %-d %+f %-f
    //String plusTest  =String.format("测试正数格式化%+d", 99);
    //String minusTest  =String.format("测试负数格式化%+d", -99);
    //日期格式化 %tx x是日期的格式,包括有(c,F,D,r,T,R),例如:%tc
    //Date now = new Date();
    //String fullTest = String.format("测试完整日期格式(%tc)", now);//星期一 二月 12 10:29:43 CST 2018
    //String yyyyMMddTest = String.format("测试日期格式(%tD)", now);//02/12/18
    //String yyyyMMddTest = String.format("测试日期格式(%tF)", now);//2018-02-12
    //String time12Test = String.format("测试12小时时间格式(%tr)", now);//10:33:13 上午
    //String time24Test = String.format("测试24小时时间格式(%tT)", now);//10:34:13
    //String timeHMTest = String.format("测试时分格式(%tR)", now);//10:35
    //    String str=String.format(Locale.US,"测试英文月份简称:%tb",now);//Feb
    //    str = String.format("测试中文月份简称:%tb",now);//二月
    //    str=String.format(Locale.US,"测试英文月份全称:%tB",now);//February
    //    str = String.format("测试中文月份全称:%tB",now);//二月
    //    str=String.format(Locale.US,"测试英文星期简称:%ta",now);//Mon
    //    str = String.format("测试中文星期简称:%ta",now);//星期一
    //    str=String.format(Locale.US,"测试英文星期全称:%tA",now);//Monday
    //    str = String.format("测试中文星期全称:%tA",now);//星期一
    //    str = String.format("测试年前两位:%tC",now);//20
    //    str = String.format("测试年后两位:%ty",now);//18
    //    str = String.format("测试当天在当年中的天数:%tj",now);//043
    //    str = String.format("测试月:%tm",now);//02
    //    str = String.format("测试日,两位不够补0:%td",now);//12
    //    str = String.format("测试日,一位:%te",now);//02
    //    str = String.format("测试24时,两位不够补0:%tH",now);//11
    //    str = String.format("测试12时,两位不够补0:%tI",now);//11
    //    str = String.format("测试24时,不补0:%tk",now);//11
    //    str = String.format("测试12时,不补0:%tl",now);//11
    //    str = String.format("测试分,两位不够补0:%tM",now);//12
    //    str = String.format("测试秒,两位不够补0:%tS",now);//10
    //    str = String.format("测试3位数字的毫秒(不足3位前面补0):%tL",now);//086
    //    str = String.format("测试9位数字的毫秒(不足9位前面补0):%tN",now);//255000000
    //    str = String.format(Locale.US,"测试小写字母的上午或下午(英):%tp",now);//am
    //    str = String.format("测试小写字母的上午或下午(中):%tp",now);//上午
    //    str = String.format("测试相对于GMT的RFC822时区的偏移量:%tz",now);//+0800
    //    str = String.format("测试时区缩写:%tZ",now);//CST
    //    str = String.format("测试1970-1-1 00:00:00 到现在所经过的秒数:%ts", now);//1518405713
    //    str = String.format("测试1970-1-1 00:00:00 到现在所经过的毫秒数:%tQ", now);//1518405768493

 

 MessageFormat.format的使用:

String str = MessageFormat.format("测试通过MessageFormat格式化{0},{1}", "1111","22222");

posted @ 2018-02-12 11:31  稚语希听  阅读(146)  评论(0)    收藏  举报