- java.lang.Object
-
- java.text.Format
-
- All Implemented Interfaces:
-
Serializable,Cloneable
- 已知直接子类:
-
DateFormat,MessageFormat,NumberFormat
public abstract class Format extends Object implements Serializable, Cloneable
Format是用于格式化区域设置敏感信息(如日期,消息和数字)的抽象基类。Format定义编程接口,用于格式化语言环境敏感的对象到String秒(format法),用于解析String背部进入对象(parseObject方法)。通常,格式的
parseObject方法必须能够解析其format方法格式化的任何字符串。 但是,这是不可能的例外情况。 例如,一个format方法可能创建两个相邻的整数,其间没有分隔符,在这种情况下,parseObject无法确定哪个数字属于哪个数字。子类
Java平台提供的三个专业小类
Format-DateFormat,MessageFormat,并NumberFormat分别──为格式化日期,消息和数字,。具体的子类必须实现三种方法:
-
format(Object obj, StringBuffer toAppendTo, FieldPosition pos) -
formatToCharacterIterator(Object obj) -
parseObject(String source, ParsePosition pos)
MessageFormat。 子类通常还为特定输入类型提供额外的format方法以及特定结果类型的parse方法。 任何不使用ParsePosition参数的parse方法应该在输入文本开头没有任何文本的情况下抛出ParseException。大多数子类也将实现以下工厂方法:
-
getInstance获取适合当前语言环境的有用的格式对象 -
getInstance(Locale)获取适用于指定语言环境的有用的格式对象
getXxxxInstance方法来进行更专门的控制。 例如,NumberFormat类提供getPercentInstance和getCurrencyInstance方法来获取专门的数字格式化程序。Format子类允许程序员为语言环境创建对象(例如使用getInstance(Locale))还必须实现以下类方法:public static Locale[] getAvailableLocales()
最后,子类可以定义一组常量来标识格式化输出中的各种字段。 这些常量用于创建一个FieldPosition对象,它识别字段中包含的信息及其在格式化结果中的位置。 这些常数应该命名为
item_FIELD,其中item标识字段。 有关这些常量的例子,请参阅ERA_FIELD及其朋友在DateFormat。Synchronization
格式通常不同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问格式,则必须在外部进行同步。
- 从以下版本开始:
- 1.1
- 另请参见:
-
ParsePosition,FieldPosition,NumberFormat,DateFormat,MessageFormat, Serialized Form
-
-
Nested Class Summary
Nested Classes Modifier and Type Class 描述 static classFormat.Field定义了用于作为属性键常数AttributedCharacterIterator从返回Format.formatToCharacterIterator和字段标识符在FieldPosition。
-
构造方法摘要
构造方法 Modifier Constructor 描述 protectedFormat()唯一的构造函数。
-
方法摘要
所有方法 接口方法 抽象方法 具体的方法 Modifier and Type 方法 描述 Objectclone()创建并返回此对象的副本。Stringformat(Object obj)格式化一个对象来生成一个字符串。abstract StringBufferformat(Object obj, StringBuffer toAppendTo, FieldPosition pos)格式化对象并将生成的文本附加到给定的字符串缓冲区。AttributedCharacterIteratorformatToCharacterIterator(Object obj)格式化一个对象,生成一个AttributedCharacterIterator。ObjectparseObject(String source)从给定字符串的开头解析文本以产生一个对象。abstract ObjectparseObject(String source, ParsePosition pos)从字符串中解析文本以生成对象。
-
-
-
方法详细信息
-
format
public final String format(Object obj)
- 参数
-
obj- 要格式化的对象 - 结果
- 格式化的字符串。
- 异常
-
IllegalArgumentException- 如果格式化不能格式化给定的对象
-
format
public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
格式化对象并将生成的文本附加到给定的字符串缓冲区。 如果pos参数标识格式使用的字段,则其索引将设置为遇到的第一个此类字段的开头和结尾。- 参数
-
obj- 要格式化的对象 -
toAppendTo- 要附加文本的位置 -
pos- 标识格式化文本中的字段的FieldPosition - 结果
-
字符串缓冲区作为
toAppendTo,附带格式化的文本 - 异常
-
NullPointerException- 如果toAppendTo或pos为空 -
IllegalArgumentException- 如果格式化不能格式化给定的对象
-
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
格式化产生一个AttributedCharacterIterator的对象。 您可以使用返回的AttributedCharacterIterator构建生成的字符串,以及确定有关生成的字符串的信息。AttributedCharacterIterator的每个属性键将为
Field类型。 它是由每Format实现定义什么合法的值是在每个属性AttributedCharacterIterator,但通常属性键也用作属性值。默认实现创建一个没有属性的
AttributedCharacterIterator。 支持字段的子类应该覆盖此,并创建一个具有有意义属性的AttributedCharacterIterator。- 参数
-
obj- 要格式化的对象 - 结果
- AttributedCharacterIterator描述格式化的值。
- 异常
-
NullPointerException- 如果obj为空。 -
IllegalArgumentException- 格式化格式化给定对象时。 - 从以下版本开始:
- 1.4
-
parseObject
public abstract Object parseObject(String source, ParsePosition pos)
从字符串中解析文本以生成对象。该方法尝试从
pos给出的索引开始解析文本。 如果解析成功,则pos的索引将更新为使用最后一个字符后的索引(解析不一定使用字符串末尾的所有字符),并返回已解析的对象。 更新的pos可用于指示下一次调用此方法的起始点。 如果发生错误,则pos的索引不会更改,错误索引pos设置为发生错误的字符的索引,返回null。- 参数
-
source- AString,其中的一部分应该被解析。 -
pos- 具有ParsePosition索引和错误索引信息的ParsePosition对象。 - 结果
-
一个
Object从字符串解析。 万一出错,返回null。 - 异常
-
NullPointerException- 如果source或pos为空。
-
parseObject
public Object parseObject(String source) throws ParseException
从给定字符串的开头解析文本以产生一个对象。 该方法可能不会使用给定字符串的整个文本。- 参数
-
source- AString其开头应该被解析。 - 结果
-
一个
Object从字符串中解析出来。 - 异常
-
ParseException- 如果指定字符串的开头不能被解析。 -
NullPointerException- 如果source为空。
-
-