java text 格式化_java.text.Format

java.lang.Object

b5f0d6092bee662657e4536afcdc8b92.gifjava.text.Format

public abstract class Formatextends

Object

Format 是一个用于格式化语言环境敏感的信息(如日期、消息和数字)的抽象基类。

Format 定义了编程接口,用于将语言环境敏感的对象格式化为 String(使用 format 方法)和将 String 重新解析为对象(使用 parseObject 方法)。

通常,一个 format 的 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 中的同类。

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

嵌套类摘要

static class

AttributedCharacterIterator(从 Format.formatToCharacterIterator 返回)中用作属性键和在 FieldPosition 中用作字段标识符的常量。

构造方法摘要

protected

方法摘要

构造方法详细信息

Format

protected Format()

单独的构造方法。(由子类的构造方法调用,通常是隐式的。)

方法详细信息

format

public final String format(Object obj)

格式化一个对象以生成一个字符串。这等效于

format

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

参数:

obj - 要格式化的对象

返回:

格式化后的字符串。

抛出:

format

格式化一个对象,并将得到的文本添加到给定的字符缓冲区。如果

pos 参数标识了一个由 format 使用的字段,那么其索引就设置为第一次出现的此类字段的起始和结束索引。

参数:

obj - 要格式化的对象

toAppendTo - 文本要添加的位置

pos - 标识格式化文本中字段的一个

FieldPosition。

返回:

添加了格式化文本并作为

toAppendTo 传入的字符串缓冲区

抛出:

toAppendTo 或

pos 为 null

formatToCharacterIterator

public AttributedCharacterIterator formatToCharacterIterator(Object obj)

格式化一个对象,生成一个

AttributedCharacterIterator。可以使用返回的

AttributedCharacterIterator 来生成得到的 String,并确定与得到的 String 有关的信息。

AttributedCharacterIterator 的每一个属性键都是 Field 类型的。由每个 Format 实现为 AttributedCharacterIterator 中的每个属性定义其合法值,但是通常属性键也用作属性值。

默认的实现创建了一个没有任何属性的 AttributedCharacterIterator。支持字段的子类应该重写此方法并创建一个具有有意义属性的 AttributedCharacterIterator。

参数:

obj - 要格式化的对象

返回:

描述格式化值的 AttributedCharacterIterator。

抛出:

从以下版本开始:

1.4

parseObject

public abstract Object parseObject(String source,

ParsePosition pos)

解析字符串文本,生成一个对象。

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

参数:

source - 其中一部分应该被解析的

String。

pos - 具有上面所描述的索引和错误索引信息的一个

ParsePosition 对象。

返回:

从字符串解析的一个

Object。如果有错误,返回 null。

抛出:

parseObject

public Object parseObject(String source)

throws ParseException

从给定字符串的开始处解析文本以生成一个对象。此方法不可以使用给定字符串的全部文本。

参数:

source - 必须解析其开头的

String。

返回:

从字符串进行解析的一个

Object。

抛出:

clone

public Object clone()

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

返回:

此实例的一个副本。

另请参见:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值