模块  java.base
软件包  java.text

Class Format

  • 实现的所有接口
    SerializableCloneable
    已知直接子类:
    DateFormatMessageFormatNumberFormat

    public abstract class Format
    extends Object
    implements Serializable, Cloneable
    Format是一个抽象基类,用于格式化区域设置敏感信息,如日期,消息和数字。

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

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

    子类

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

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

    1. format(Object obj, StringBuffer toAppendTo, FieldPosition pos)
    2. formatToCharacterIterator(Object obj)
    3. parseObject(String source, ParsePosition pos)
    这些通用方法允许对象的多态解析和格式化,并且例如由MessageFormat 子类通常还为特定输入类型提供额外的format方法,并为特定结果类型提供parse方法。 当所需格式的文本ParseException输入文本的开头时,任何不采用ParsePosition参数的parse方法应抛出ParseException

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

    1. getInstance用于获取适用于当前语言环境的有用格式对象
    2. getInstance(Locale)用于获取适用于指定语言环境的有用格式对象
    此外,一些子类还可以实现其他getXxxxInstance方法以进行更专业的控制。 例如, NumberFormat类提供了getPercentInstancegetCurrencyInstance方法来获取专用数字格式化程序。

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

     public static Locale[] getAvailableLocales()
     

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

    Synchronization

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

    从以下版本开始:
    1.1
    另请参见:
    ParsePositionFieldPositionNumberFormatDateFormatMessageFormatSerialized Form
    • 构造方法详细信息

      • Format

        protected 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参数标识格式使用的字段,则其索引将设置为遇到的第一个此类字段的开头和结尾。
        参数
        obj - 要格式化的对象
        toAppendTo - 要附加文本的位置
        pos - 识别格式化文本中的字段的 FieldPosition
        结果
        传入的字符串缓冲区为 toAppendTo ,附加了格式化文本
        异常
        NullPointerException - 如果 toAppendTopos为空
        IllegalArgumentException - 如果格式无法格式化给定对象
      • formatToCharacterIterator

        public AttributedCharacterIterator formatToCharacterIterator​(Object obj)
        格式化一个生成AttributedCharacterIterator的对象。 您可以使用返回的AttributedCharacterIterator来构建生成的String,以及确定有关生成的String的信息。

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

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

        参数
        obj - 要格式化的对象
        结果
        AttributedCharacterIterator描述格式化的值。
        异常
        NullPointerException - 如果obj为null。
        IllegalArgumentException - 格式无法格式化给定对象时。
        从以下版本开始:
        1.4
      • parseObject

        public abstract Object parseObject​(String source,
                                           ParsePosition pos)
        解析字符串中的文本以生成对象。

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

        参数
        source - A String ,其中一部分应该被解析。
        pos - 具有 ParsePosition索引和错误索引信息的 ParsePosition对象。
        结果
        从字符串解析的Object 如果出现错误,则返回null。
        异常
        NullPointerException - 如果 sourcepos为空。
      • parseObject

        public Object parseObject​(String source)
                           throws ParseException
        从给定字符串的开头解析文本以生成对象。 该方法可能不使用给定字符串的整个文本。
        参数
        source - 应该解析其开头的 String
        结果
        从字符串解析的 Object
        异常
        ParseException - 如果无法解析指定字符串的开头。
        NullPointerException - 如果 source为空。
      • clone

        public Object clone()
        创建并返回此对象的副本。
        重写:
        clone ,课程 Object
        结果
        这个实例的克隆。
        另请参见:
        Cloneable