|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
java.text
类 Format
java.lang.Object java.text.Format
- 所有已实现的接口:
- Serializable, Cloneable
- 直接已知子类:
- DateFormat, MessageFormat, NumberFormat
-
public abstract class Format
- extends Object
- implements Serializable, Cloneable
Format
是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。
Format
定义了编程接口,用于将语言环境敏感的对象格式化为 String
(使用 format
方法)和将 String
重新分析为对象(使用 parseObject
方法)。
通常,一个 format 的 parseObject
方法必须能分析任何由其 format
方法格式化的字符串。不过,也可能存在不能分析的异常情况。例如,format
方法可能创建中间无分隔符的两个相邻整数,在这种情况下,parseObject
无法判断哪个数字属于哪个数。
子类化
Java 2 平台为格式化日期、消息和数字分别提供了三个特殊的 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
中的同类。
同步
格式通常不是同步的。建议为每个线程创建独立的格式实例。如果多个线程同时访问一个格式,其它必须保持外部同步。
嵌套类摘要 | |
---|---|
static class |
Format.Field 定义在 AttributedCharacterIterator (从 Format.formatToCharacterIterator 返回)中用作属性键和在 FieldPosition 中用作字段标识符的常量。 |
构造方法摘要 | |
---|---|
Format() |
方法摘要 | |
---|---|
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) 分析字符串文本,生成一个对象。 |
从类 java.lang.Object 继承的方法 |
---|
equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
构造方法详细信息 |
---|
Format
public Format()
方法详细信息 |
---|
format
public final String format(Object obj)
-
格式化一个对象以生成一个字符串。这等效于
format
(obj, new StringBuffer(), new FieldPosition(0)).toString();
-
-
- 参数:
-
obj
- 要格式化的对象 - 返回:
- 格式化后的字符串。
- 抛出:
-
IllegalArgumentException
- 如果该 Format 不能格式化给定的对象
format
public abstract StringBuffer format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
-
格式化一个对象,并将得到的文本追加到给定的字符缓冲区。如果
pos
参数标识了一个由 format 使用的字段,那么它的索引就设置为第一次出现的此类字段的起始和结束索引。 -
-
- 参数:
-
obj
- 要格式化的对象 -
toAppendTo
- 文本要追加的位置 -
pos
- 标识格式化文本中字段的一个FieldPosition
。 - 返回:
-
追加了格式化文本并作为
toAppendTo
传入的字符串缓冲区。 - 抛出:
-
NullPointerException
- 如果toAppendTo
或pos
为 null -
IllegalArgumentException
- 如果 Format 不能格式化给定的对象。
formatToCharacterIterator
public AttributedCharacterIterator formatToCharacterIterator(Object obj)
-
格式化一个对象,生成一个
AttributedCharacterIterator
。可以使用返回的AttributedCharacterIterator
来生成得到的 String,并确定与得到的 String 有关的信息。AttributedCharacterIterator 的每一个属性键都是
Field
类型的。由每个Format
实现为AttributedCharacterIterator
中的每个属性定义其合法值,但是典型地,属性键也用作属性值。默认的实现创建了一个没有任何属性的
AttributedCharacterIterator
。支持字段的子类应该重写此方法并创建一个具有有意义属性的AttributedCharacterIterator
。 -
-
- 参数:
-
obj
- 要格式化的对象 - 返回:
- 描述格式化值的 AttributedCharacterIterator。
- 抛出:
-
NullPointerException
- 如果 obj 为 null。 -
IllegalArgumentException
- 如果该 Format 无法格式化给定的对象。 - 从以下版本开始:
- 1.4
parseObject
public abstract Object parseObject(String source, ParsePosition pos)
-
分析字符串文本,生成一个对象。
此方法试图分析从
pos
给定索引处开始的文本。如果分析成功,则将pos
的索引更新到使用的最后一个字符之后的索引(不一定要分析直到字符串末尾的所有字符),并返回分析后的对象。更新的pos
可以用来指示下一次调用此方法的起始点。如果发生错误,则不更改pos
的索引,将pos
的错误索引设置为错误发生处的字符的索引,并返回 null。 -
-
- 参数:
-
source
- 其中一部分应该被分析的String
。 -
pos
- 具有上面所描述的索引和错误索引信息的一个ParsePosition
对象。 - 返回:
-
从字符串分析的一个
Object
。如果有错误,返回 null。 - 抛出:
-
NullPointerException
- 如果pos
为 null。
parseObject
public Object parseObject(String source) throws ParseException
- 从给定字符串的开始处分析文本以生成一个对象。此方法不可以使用给定字符串的全部文本。
-
-
- 参数:
-
source
- 必须分析其开头的String
。 - 返回:
-
从字符串进行分析的一个
Object
。 - 抛出:
-
ParseException
- 如果无法分析指定字符串的开头。
clone
public Object clone()
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |