1.java.text.Format......................................................................................................................21.1.Format的方法.............................................................................................................21.2.Format的子类.............................................................................................................21.3.DateFormat的用法.....................................................................................................21.4.MessageFormat的用法..............................................................................................21.5.NumberFormat的用法...............................................................................................31.5.1.NumberFormat的介绍...................................................................................31.5.2.子类DecimalFormat.......................................................................................31.5.3.子类ChoiceFormat.........................................................................................31.5.4.ChoiceFormat的例子.....................................................................................31.5.5.ChoiceFormat的pattern构造方法...............................................................41.5.6.其它的数字格式化...........................................................................................42.java.util.Formatter..................................................................................................................52.1.介绍...............................................................................................................................52.2.转换(conversion)..........................................................................................................52.2.1.常规...................................................................................................................52.2.2.字符...................................................................................................................62.2.3.整数...................................................................................................................62.2.4.浮点...................................................................................................................62.2.5.日期/时间..........................................................................................................62.2.6.百分比...............................................................................................................62.2.7.行分隔符...........................................................................................................62.3.标志(flags)....................................................................................................................62.4.宽度(width)..................................................................................................................62.5.精度(.precision)...........................................................................................................63.java.util.regex.Pattern............................................................................................................73.1.介绍...............................................................................................................................73.2.关于regex....................................................................................................................73.3.Matcher(匹配器).........................................................................................................7在Java中,有java.text.Format,java.util.Formatter,java.util.regex.Pattern三个格式化相关的体系,使用起来较为复杂,在这里总结一下。1.java.text.Format1.1.Format的方法java.text.Format做为一个抽象类,有二个抽象方法,format(Objectobj,StringBuffertoAppendTo,FieldPositionpos):格式化一个对象,并将得到的文本追加到给定的字符缓冲区。是将obj格式化为字符串,并加入到toAppendTo中。parseObject(Stringsource,ParsePositionpos):分析字符串文本,生成一个对象。是format方法的逆向方法,将String转化为Object。另外的format和parseObject这两个方法的重载。方法formatToCharacterIterator(Objectobj)并非抽象方法,api上要求子类必须实现这个方法。1.2.Format的子类Java2平台为格式化日期、消息和数字分别提供了三个特殊的Format的子类:DateFormat(抽象类)、MessageFormat和NumberFormat(抽象类)。——DateFormat——SimpleDateFormatFormat——MessageFormat——NumberFormat——ChoiceFormat——DecimalFormat用于格式化十进制数字1.3.DateFormat的用法DateFormat是日期/时间格式化子类的抽象类,有一些static的get***Instance()方法来获得实例。通过设置结果的长度和地区,来获得日期,时间等的格式formatter。不太常用。一般会使用SimpleDateFormat子类,newSimpleDateFormat(yyyy-MM-dd)或newSimpleDateFormat(yyyy-MM-ddHH:mm:ss),来获得常用的时间格式。DateFormat的get***Instance()方法一般也是获得SimpleDateFormat。看DateFormat的源代码有个疑问,如果继承了DateFormat类,那DateFormat.get***Instance()的方法还是返回SimpleDateFormat?DateFormat.get是私有的,也不能覆盖。DateFormat类中还有一些static的字段,如WEEK_OF_MONTH_FIELD,WEEK_OF_YEAR_FIELD。api上说在FieldPosition中使用,用于对齐。java.util.Calendar也是日期操作相关的类,实现类为GregorianCalendar。主要对日期进行操作。注意add方法和roll方法的区别,roll方法不更改更大的字段。还有一些静态的变量DAY_OF_MONTH,DAY_OF_WEEK等,在get/set/add/roll方法中使用。1.4.MessageFormat的用法和SimpleDateFormat一样,也需要传入一个pattern。如Stringresult=MessageFormat.format(At{1,time}on{1,date},therewas{2}onplanet{0,number,integer}.,7,newDate(),“amessage”);其中{1,time}中1