Class FormattedNumber

  • All Implemented Interfaces:
    FormattedValue, java.lang.CharSequence

    public class FormattedNumber
    extends java.lang.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:
    NumberFormatter
    • Method Detail

      • toString

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

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

        public char charAt​(int index)
        Specified by:
        charAt in interface java.lang.CharSequence
      • subSequence

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

        public <A extends java.lang.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.
      • toBigDecimal

        public java.math.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:
        NumberFormatter
      • 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 java.lang.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.