Class 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:
    NumberFormatter
    Status:
    Stable ICU 60.
    • Method Detail

      • length

        public int length()
        Specified by:
        length in interface CharSequence
        Status:
        Stable ICU 64.
      • charAt

        public char charAt​(int index)
        Specified by:
        charAt in interface CharSequence
        Status:
        Stable ICU 64.
      • 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.
        Status:
        Stable ICU 60.
      • 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.
        Status:
        Stable ICU 64.
      • 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:
        NumberFormatter
        Status:
        Stable ICU 60.
      • 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.
        Status:
        Stable ICU 68.
      • 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
        Status:
        Stable ICU 72.
      • getGender

        @Deprecated
        public String getGender()
        Deprecated.
        This API is for technology preview only.
        The gender of the formatted output.
        Status:
        Technology Preview. This API is still in the early stages of development. Use at your own risk.