Package com.ibm.icu.number
Class NumberRangeFormatter
- java.lang.Object
-
- com.ibm.icu.number.NumberRangeFormatter
-
public abstract class NumberRangeFormatter extends java.lang.Object
The main entrypoint to the formatting of ranges of numbers, including currencies and other units of measurement.Usage example:
NumberRangeFormatter.with() .identityFallback(RangeIdentityFallback.APPROXIMATELY_OR_SINGLE_VALUE) .numberFormatterFirst(NumberFormatter.with().unit(MeasureUnit.METER)) .numberFormatterSecond(NumberFormatter.with().unit(MeasureUnit.KILOMETER)) .locale(ULocale.UK) .formatRange(750, 1.2) .toString(); // => "750 m - 1.2 km"
Like NumberFormatter, NumberRangeFormatter instances (i.e., LocalizedNumberRangeFormatter and UnlocalizedNumberRangeFormatter) are immutable and thread-safe. This API is based on the fluent design pattern popularized by libraries such as Google's Guava.
- See Also:
NumberFormatter
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
NumberRangeFormatter.RangeCollapse
Defines how to merge fields that are identical across the range sign.static class
NumberRangeFormatter.RangeIdentityFallback
Defines the behavior when the two numbers in the range are identical after rounding.static class
NumberRangeFormatter.RangeIdentityResult
Used in the result class FormattedNumberRange to indicate to the user whether the numbers formatted in the range were equal or not, and whether or not the identity fallback was applied.static class
NumberRangeFormatter.SpanField
Class for span fields in FormattedNumberRange.
-
Field Summary
Fields Modifier and Type Field Description private static UnlocalizedNumberRangeFormatter
BASE
-
Constructor Summary
Constructors Modifier Constructor Description private
NumberRangeFormatter()
Private constructor - this class is not designed for instantiation
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static UnlocalizedNumberRangeFormatter
with()
Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is not currently known at the call site.static LocalizedNumberRangeFormatter
withLocale(ULocale locale)
Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is known at the call site.static LocalizedNumberRangeFormatter
withLocale(java.util.Locale locale)
Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is known at the call site.
-
-
-
Field Detail
-
BASE
private static final UnlocalizedNumberRangeFormatter BASE
-
-
Method Detail
-
with
public static UnlocalizedNumberRangeFormatter with()
Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is not currently known at the call site.- Returns:
- An
UnlocalizedNumberRangeFormatter
, to be used for chaining.
-
withLocale
public static LocalizedNumberRangeFormatter withLocale(java.util.Locale locale)
Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is known at the call site.- Parameters:
locale
- The locale from which to load formats and symbols for number range formatting.- Returns:
- A
LocalizedNumberRangeFormatter
, to be used for chaining.
-
withLocale
public static LocalizedNumberRangeFormatter withLocale(ULocale locale)
Call this method at the beginning of a NumberRangeFormatter fluent chain in which the locale is known at the call site.- Parameters:
locale
- The locale from which to load formats and symbols for number range formatting.- Returns:
- A
LocalizedNumberRangeFormatter
, to be used for chaining.
-
-