# Class FieldPosition

java.lang.Object
java.text.FieldPosition

public class FieldPosition extends Object
`FieldPosition` is a simple class used by `Format` and its subclasses to identify fields in formatted output. Fields can be identified in two ways:

- By an integer constant, whose names typically end with `_FIELD`. The constants are defined in the various subclasses of `Format`.
- By a `Format.Field` constant, see `ERA_FIELD` and its friends in `DateFormat` for an example.

`FieldPosition` keeps track of the position of the field within the formatted output with two indices: the index of the first character of the field and the index of the last character of the field.

One version of the `format` method in the various `Format` classes requires a `FieldPosition` object as an argument. You use this `format` method to perform partial formatting or to get information about the formatted output (such as the position of a field).

If you are interested in the positions of all attributes in the formatted string use the `Format` method `formatToCharacterIterator`.

Since:
  1.1
See Also:
  - `Format`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `FieldPosition(int field)`
  Creates a FieldPosition object for the given field.
  `FieldPosition(Format.Field attribute)`
  Creates a FieldPosition object for the given field constant.
  `FieldPosition(Format.Field attribute, int fieldID)`
  Creates a `FieldPosition` object for the given field.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `boolean`
  `equals(Object obj)`
  Overrides equals
  `int`
  `getBeginIndex()`
  Retrieves the index of the first character in the requested field.
  `int`
  `getEndIndex()`
  Retrieves the index of the character following the last character in the requested field.
  `int`
  `getField()`
  Retrieves the field identifier.
  `Format.Field`
  `getFieldAttribute()`
  Returns the field identifier as an attribute constant from one of the `Field` subclasses.
  `int`
  `hashCode()`
  Returns a hash code for this FieldPosition.
  `void`
  `setBeginIndex(int bi)`
  Sets the begin index.
  `void`
  `setEndIndex(int ei)`
  Sets the end index.
  `String`
  `toString()`
  Return a string representation of this FieldPosition.

  ### Methods declared in class java.lang.Object

  `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### FieldPosition

    public FieldPosition(int field)
    Creates a FieldPosition object for the given field. Fields are identified by constants, whose names typically end with _FIELD, in the various subclasses of Format.
    Parameters:
      `field` - the field identifier
    See Also:
      - `NumberFormat.INTEGER_FIELD`
      - `NumberFormat.FRACTION_FIELD`
      - `DateFormat.YEAR_FIELD`
      - `DateFormat.MONTH_FIELD`

  - ### FieldPosition

    public FieldPosition(Format.Field attribute)
    Creates a FieldPosition object for the given field constant. Fields are identified by constants defined in the various `Format` subclasses. This is equivalent to calling `new FieldPosition(attribute, -1)`.
    Parameters:
      `attribute` - Format.Field constant identifying a field
    Since:
      1.4

  - ### FieldPosition

    public FieldPosition(Format.Field attribute, int fieldID)
    Creates a `FieldPosition` object for the given field. The field is identified by an attribute constant from one of the `Field` subclasses as well as an integer field ID defined by the `Format` subclasses. `Format` subclasses that are aware of `Field` should give precedence to `attribute` and ignore `fieldID` if `attribute` is not null. However, older `Format` subclasses may not be aware of `Field` and rely on `fieldID`. If the field has no corresponding integer constant, `fieldID` should be -1.
    Parameters:
      `attribute` - Format.Field constant identifying a field
      `fieldID` - integer constant identifying a field
    Since:
      1.4

- ## Method Details

  - ### getFieldAttribute

    public Format.Field getFieldAttribute()
    Returns the field identifier as an attribute constant from one of the `Field` subclasses. May return null if the field is specified only by an integer field ID.
    Returns:
      Identifier for the field
    Since:
      1.4

  - ### getField

    public int getField()
    Retrieves the field identifier.
    Returns:
      the field identifier

  - ### getBeginIndex

    public int getBeginIndex()
    Retrieves the index of the first character in the requested field.
    Returns:
      the begin index

  - ### getEndIndex

    public int getEndIndex()
    Retrieves the index of the character following the last character in the requested field.
    Returns:
      the end index

  - ### setBeginIndex

    public void setBeginIndex(int bi)
    Sets the begin index. For use by subclasses of Format.
    Parameters:
      `bi` - the begin index
    Since:
      1.2

  - ### setEndIndex

    public void setEndIndex(int ei)
    Sets the end index. For use by subclasses of Format.
    Parameters:
      `ei` - the end index
    Since:
      1.2

  - ### equals

    public boolean equals(Object obj)
    Overrides equals
    Overrides:
      `equals` in class `Object`
    Parameters:
      `obj` - the reference object with which to compare.
    Returns:
      `true` if this object is the same as the obj argument; `false` otherwise.
    See Also:
      - `Object.hashCode()`
      - `HashMap`

  - ### hashCode

    public int hashCode()
    Returns a hash code for this FieldPosition.
    Overrides:
      `hashCode` in class `Object`
    Returns:
      a hash code for this FieldPosition
    See Also:
      - `Object.equals(java.lang.Object)`
      - `System.identityHashCode(java.lang.Object)`

  - ### toString

    public String toString()
    Return a string representation of this FieldPosition.
    Overrides:
      `toString` in class `Object`
    Returns:
      a string representation of this object