Class FormattedNumber

java.lang.Object
com.ibm.icu.number.FormattedNumber
All Implemented Interfaces:
FormattedValue, CharSequence

public class FormattedNumber extends Object implements FormattedValue
The result of a number formatting operation. This class allows the result to be exported in several data types, including a String, an AttributedCharacterIterator, and a BigDecimal. Instances of this class are immutable and thread-safe.
See Also:
  • Method Details

    • toString

      public String toString()
      Returns the formatted string as a Java String. Consider using FormattedValue.appendTo(A) for greater efficiency.
      Specified by:
      toString in interface CharSequence
      Specified by:
      toString in interface FormattedValue
      Overrides:
      toString in class Object
      Returns:
      The formatted string.
    • length

      public int length()
      Specified by:
      length in interface CharSequence
    • charAt

      public char charAt(int index)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • appendTo

      public <A extends Appendable> A appendTo(A appendable)
      Appends the formatted string to an Appendable.

      If an IOException occurs when appending to the Appendable, an unchecked ICUUncheckedIOException is thrown instead.

      Specified by:
      appendTo in interface FormattedValue
      Parameters:
      appendable - The Appendable to which to append the string output.
      Returns:
      The same Appendable, for chaining.
    • nextPosition

      public boolean nextPosition(ConstrainedFieldPosition cfpos)
      Iterates over field positions in the FormattedValue. This lets you determine the position of specific types of substrings, like a month or a decimal separator. To loop over all field positions:
           ConstrainedFieldPosition cfpos = new ConstrainedFieldPosition();
           while (fmtval.nextPosition(cfpos)) {
               // handle the field position; get information from cfpos
           }
       
      Specified by:
      nextPosition in interface FormattedValue
      Parameters:
      cfpos - The object used for iteration state. This can provide constraints to iterate over only one specific field; see ConstrainedFieldPosition.constrainField(java.text.Format.Field).
      Returns:
      true if a new occurrence of the field was found; false otherwise.
    • toCharacterIterator

      public AttributedCharacterIterator toCharacterIterator()
      Exports the formatted number as an AttributedCharacterIterator.

      Consider using FormattedValue.nextPosition(com.ibm.icu.text.ConstrainedFieldPosition) if you are trying to get field information.

      Specified by:
      toCharacterIterator in interface FormattedValue
      Returns:
      An AttributedCharacterIterator containing full field information.
    • toBigDecimal

      public BigDecimal toBigDecimal()
      Export the formatted number as a BigDecimal. This endpoint is useful for obtaining the exact number being printed after scaling and rounding have been applied by the number formatting pipeline.
      Returns:
      A BigDecimal representation of the formatted number.
      See Also:
    • getOutputUnit

      public MeasureUnit getOutputUnit()
      Gets the resolved output unit.

      The output unit is dependent upon the localized preferences for the usage specified via NumberFormatterSettings.usage(), and may be a unit with MeasureUnit.Complexity.MIXED unit complexity (MeasureUnit.getComplexity()), such as "foot-and-inch" or "hour-and-minute-and-second".

      Returns:
      MeasureUnit.
    • getNounClass

      public DisplayOptions.NounClass getNounClass()
      Gets the noun class of the formatted output. Returns UNDEFINED when the noun class is not supported yet.
      Returns:
      NounClass
    • getGender

      @Deprecated public String getGender()
      Deprecated.
      This API is for technology preview only.
      The gender of the formatted output.
    • getFixedDecimal

      @Deprecated public PluralRules.IFixedDecimal getFixedDecimal()
      Deprecated.
      This API is ICU internal only.