Fix Version/s: 12
Compatibility Risk Description:Since the new APIs are added, the compatibility risk is minimal.
Interface Kind:Java API
Adding support for the compact/short number formatting in JDK.
The existing NumberFormat APIs provide support for formatting/parsing general purpose numbers e.g. decimal, currency, and percentage, but the support for formatting in compact forms of numbers is not available.
Add the support for formatting the numbers in compact forms. Each locale has different compact forms for representing a number, hence a number can be formatted in multiple ways across locales.
- 1000 can be formatted as "1K", and 1000000 as 1M in "en_US" locale
- 1000 can be formatted as "1 हज़ार", and 50000000 as "5 क." In "hi_IN" locale
CLDR provides patterns for compact number formatting. These resources can be utilized to add locale specific compact number formatting support.
Following major public APIs are introduced for compact number formatting feature:
CompactNumberFormat class targeted for compact number formatting
public class CompactNumberFormat extends NumberFormat
NumberFormat.Style enum for specifying the format style
public static enum NumberFormat.Style
public factory methods in NumberFormat.java to obtain CompactNumberFormat instance
public static NumberFormat getCompactNumberInstance() public static NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)
Provider method in java/text/spi/NumberFormatProvider
public NumberFormat getCompactNumberInstance(Locale locale, NumberFormat.Style formatStyle)