Most visited

Recently visited

Added in API level 1

Format

public abstract class Format
extends Object implements Serializable, Cloneable

java.lang.Object
   ↳ java.text.Format
Known Direct Subclasses
Known Indirect Subclasses


Format是用于格式化区域敏感信息(如日期,消息和数字)的抽象基类。

Format定义编程接口,用于格式化语言环境敏感的对象到 String秒( format法),用于解析 String背部进入对象( parseObject方法)。

通常,格式的parseObject方法必须能够解析由其format方法格式化的任何字符串。 但是,在这种情况不可能的情况下可能会出现特殊情况。 例如,一个format方法可能创建两个相邻的整数,其间没有分隔符,在这种情况下, parseObject无法分辨哪个数字属于哪个数字。

Subclassing

Java平台提供的三个专业小类 Format - DateFormatMessageFormat ,并 NumberFormat分别──为格式化日期,消息和数字,。

具体子类必须实现三种方法:

  1. format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
  2. formatToCharacterIterator(Object obj)
  3. parseObject(String source, ParsePosition pos)
These general methods allow polymorphic parsing and formatting of objects and are used, for example, by MessageFormat. Subclasses often also provide additional format methods for specific input types as well as parse methods for specific result types. Any parse method that does not take a ParsePosition argument should throw ParseException when no text in the required format is at the beginning of the input text.

大多数子类也将实现以下工厂方法:

  1. getInstance for getting a useful format object appropriate for the current locale
  2. getInstance(Locale) for getting a useful format object appropriate for the specified locale
In addition, some subclasses may also implement other getXxxxInstance methods for more specialized control. For example, the NumberFormat class provides getPercentInstance and getCurrencyInstance methods for getting specialized number formatters.

允许程序员为语言环境创建对象的 Format子类(例如 getInstance(Locale) )还必须实现以下类方法:

 public static Locale[] getAvailableLocales()
 

最后,子类可以定义一组常量来标识格式化输出中的各个字段。 这些常量用于创建FieldPosition对象,该对象标识字段中包含的信息及其在格式化结果中的位置。 这些常量应该命名为item_FIELD ,其中item标识该字段。 有关这些常量的示例,请参阅ERA_FIELD及其朋友, DateFormat

Synchronization

格式通常不同步。 建议为每个线程创建单独的格式实例。 如果多个线程同时访问一个格式,它必须在外部同步。

也可以看看:

Summary

Nested classes

class Format.Field

定义了用于作为属性键常数AttributedCharacterIterator从返回Format.formatToCharacterIterator和字段标识符在FieldPosition

Protected constructors

Format()

唯一的构造函数。

Public methods

Object clone()

创建并返回此对象的副本。

final 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)

分析字符串中的文本以生成对象。

Inherited methods

From class java.lang.Object

Protected constructors

Format

Added in API level 1
Format ()

唯一的构造函数。 (对于子类构造函数的调用,通常是隐式的。)

Public methods

clone

Added in API level 1
Object clone ()

创建并返回此对象的副本。

Returns
Object a clone of this instance.

format

Added in API level 1
String format (Object obj)

格式化一个对象来产生一个字符串。 这相当于

format (obj, new StringBuffer(), new FieldPosition(0)).toString();

Parameters
obj Object: The object to format
Returns
String Formatted string.
Throws
IllegalArgumentException if the Format cannot format the given object

format

Added in API level 1
StringBuffer format (Object obj, 
                StringBuffer toAppendTo, 
                FieldPosition pos)

格式化对象并将结果文本附加到给定的字符串缓冲区。 如果pos参数标识格式使用的字段,则其索引将设置为遇到的第一个此类字段的开始和结尾。

Parameters
obj Object: The object to format
toAppendTo StringBuffer: where the text is to be appended
pos FieldPosition: A FieldPosition identifying a field in the formatted text
Returns
StringBuffer the string buffer passed in as toAppendTo, with formatted text appended
Throws
NullPointerException if toAppendTo or pos is null
IllegalArgumentException if the Format cannot format the given object

formatToCharacterIterator

Added in API level 1
AttributedCharacterIterator formatToCharacterIterator (Object obj)

格式化产生AttributedCharacterIterator的对象。 您可以使用返回的AttributedCharacterIterator来构建生成的字符串,以及确定有关生成的字符串的信息。

AttributedCharacterIterator的每个属性键都是类型Field 它是由每Format实现定义什么合法的值是在每个属性AttributedCharacterIterator ,但通常属性键也用作属性值。

默认实现创建一个没有属性的AttributedCharacterIterator 支持字段的子类应该覆盖该字段,并使用有意义的属性创建AttributedCharacterIterator

Parameters
obj Object: The object to format
Returns
AttributedCharacterIterator AttributedCharacterIterator describing the formatted value.
Throws
NullPointerException if obj is null.
IllegalArgumentException when the Format cannot format the given object.

parseObject

Added in API level 1
Object parseObject (String source)

从给定字符串的开头解析文本以生成一个对象。 该方法可能不会使用给定字符串的整个文本。

Parameters
source String: A String whose beginning should be parsed.
Returns
Object An Object parsed from the string.
Throws
ParseException if the beginning of the specified string cannot be parsed.

parseObject

Added in API level 1
Object parseObject (String source, 
                ParsePosition pos)

分析字符串中的文本以生成对象。

该方法尝试解析从pos给出的索引开始的文本。 如果解析成功,那么索引pos在使用最后一个字符(解析不一定使用到字符串末尾的所有字符)之后更新为索引,并返回解析对象。 更新的pos可用于指示下一次调用此方法的起点。 如果发生错误,则pos的索引不会更改,将错误索引pos设置为发生错误的字符的索引,并返回null。

Parameters
source String: A String, part of which should be parsed.
pos ParsePosition: A ParsePosition object with index and error index information as described above.
Returns
Object An Object parsed from the string. In case of error, returns null.
Throws
NullPointerException if pos is null.

Hooray!