public abstract class Format extends Object implements Serializable, Cloneable
Format是用于格式化区域设置敏感信息(如日期,消息和数字)的抽象基类。
Format定义了将区域设置敏感对象格式化为String ( format方法)和用于将String s解析为对象( parseObject方法)的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没有所需格式的文本时抛出ParseException 。
大多数子类也将实现以下工厂方法:
getInstance获取适合当前语言环境的有用的格式对象 getInstance(Locale)获取适用于指定区域设置的有用的格式对象 getXxxxInstance方法来进行更专门的控制。
例如, NumberFormat类提供了getPercentInstance和getCurrencyInstance方法来获取专门的数字格式化程序。
Format的Format允许程序员为语言环境创建对象(例如getInstance(Locale) )也必须实现以下类方法:
public static Locale[] getAvailableLocales()
最后,子类可以定义一组常量来标识格式化输出中的各种字段。 这些常量用于创建一个FieldPosition对象,它识别字段中包含的信息及其在格式化结果中的位置。 这些常量应该命名为item_FIELD ,其中item标识字段。 有关这些常量的例子,请参阅ERA_FIELD及其朋友在DateFormat 。
格式通常不同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问格式,则必须在外部进行同步。
ParsePosition , FieldPosition , NumberFormat , DateFormat , MessageFormat , Serialized Form
| Modifier and Type | Class and Description |
|---|---|
static class |
Format.Field
定义在
AttributedCharacterIterator返回的
Format.formatToCharacterIterator中用作属性键的
AttributedCharacterIterator ,以及FieldPosition中的字段
FieldPosition 。
|
| Modifier | Constructor and Description |
|---|---|
protected |
Format()
唯一的构造函数。
|
| Modifier and Type | Method and Description |
|---|---|
Object |
clone()
创建并返回此对象的副本。
|
String |
format(Object obj)
格式化一个对象来生成一个字符串。
|
abstract StringBuffer |
format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
格式化对象并将生成的文本附加到给定的字符串缓冲区。
|
AttributedCharacterIterator |
formatToCharacterIterator(Object obj)
格式化一个对象,生成一个
AttributedCharacterIterator 。
|
Object |
parseObject(String source)
从给定字符串的开头解析文本以产生一个对象。
|
abstract Object |
parseObject(String source, ParsePosition pos)
从字符串中解析文本以生成对象。
|
public final String format(Object obj)
obj - 要格式化的对象
IllegalArgumentException - 如果格式化不能格式化给定的对象
public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
pos参数标识格式使用的字段,则其索引将设置为遇到的第一个此类字段的开头和结尾。
obj - 要格式化的对象
toAppendTo - 要附加文本的位置
pos -
FieldPosition格式化文本中的字段的FieldPosition
toAppendTo传递,附带格式化的文本
NullPointerException - 如果
toAppendTo或
pos为空
IllegalArgumentException - 如果格式化不能格式化给定的对象
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
AttributedCharacterIterator 。
您可以使用返回的AttributedCharacterIterator构建生成的字符串,以及确定有关生成的字符串的信息。
AttributedCharacterIterator的每个属性键将为Field 。 它是由每个Format实现定义什么合法的值是在每个属性AttributedCharacterIterator ,但通常属性键也用作属性值。
默认的实现创建一个AttributedCharacterIterator没有任何属性。 支持字段的子类应该重写此并创建一个AttributedCharacterIterator有意义的属性。
obj - 要格式化的对象
NullPointerException - 如果obj为空。
IllegalArgumentException - 格式化格式化给定对象时。
public abstract Object parseObject(String source, ParsePosition pos)
该方法尝试从pos给出的索引开始解析文本。 如果解析成功,那么在使用最后一个字符之后,索引pos更新为索引(解析不一定使用字符串末尾的所有字符),并返回解析的对象。 更新的pos可用于指示下一次调用此方法的起始点。 如果发生错误,则pos的索引不会更改,错误索引pos设置为发生错误的pos的索引,返回null。
source - A
String ,其中一部分应解析。
pos - 具有
ParsePosition的索引和错误索引信息的
ParsePosition对象。
Object从字符串中解析出来。
万一出错,返回null。
NullPointerException - 如果
pos为空。
public Object parseObject(String source) throws ParseException
source - A
String ,其开头应被解析。
Object从字符串中解析出来。
ParseException - 如果指定字符串的开头不能被解析。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.