Skip to content

Commit 8258a84

Browse files
committed
Compact Number Formatting (java-12)
1 parent 3ba20fe commit 8258a84

File tree

3 files changed

+54
-7
lines changed

3 files changed

+54
-7
lines changed

README.md

+4
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,10 @@ This repository contains Java examples that are designed to track and document t
3131
* [Java 16](java-16/) (March, 2021)
3232
* [JEP 395](java-16/src/main/java/com/ibrahimatay/JEP395Records.java): Records
3333

34+
* [Java 12](java-12/) (March, 2019)
35+
* API Improvements
36+
* [Compact Number Formatting](java-12/src/main/java/com/ibrahimatay/CompactNumberFormatting.java)
37+
3438
* [Java 11](java-11/) (September, 2018)
3539
* [JEP 181](java-11/src/main/java/com/ibrahimatay/JEP181NestBasedAccessControl.java): Nest-Based Access Control
3640
* [JEP 318](java-11/src/main/java/com/ibrahimatay/JEP318MemoryPolluter.java): Epsilon: A No-Op Garbage Collector
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
package com.ibrahimatay;
2+
3+
import java.text.CompactNumberFormat;
4+
import java.text.DecimalFormat;
5+
import java.text.NumberFormat;
6+
import java.text.ParseException;
7+
import java.util.Locale;
8+
import java.util.*;
9+
10+
public class CompactNumberFormatting {
11+
12+
// Compact Number Formatting support
13+
// https://bugs.openjdk.org/browse/JDK-8188147
14+
15+
// Compact Number Formatting Comes to JDK 12
16+
// https://marxsoftware.blogspot.com/2019/01/jdk12-custom-number-formatting.html
17+
18+
public static void main(String[] args) throws ParseException {
19+
NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.LONG);
20+
21+
System.out.println(fmt.parse("100"));
22+
System.out.println(fmt.parse("1 thousand"));
23+
System.out.println(fmt.parse("10 thousand"));
24+
System.out.println(fmt.parse("100 thousand"));
25+
26+
/*
27+
Result:
28+
100
29+
1000
30+
10000
31+
100000
32+
*/
33+
NumberFormat minimumFractionDigits = NumberFormat.getCompactNumberInstance(Locale.US, NumberFormat.Style.SHORT);
34+
minimumFractionDigits.setMinimumFractionDigits(3);
35+
36+
System.out.println(minimumFractionDigits.format(10000));
37+
System.out.println(minimumFractionDigits.format(10012));
38+
System.out.println(minimumFractionDigits.format(100201));
39+
System.out.println(minimumFractionDigits.format(1111111));
40+
41+
/*
42+
Result:
43+
10.000K
44+
10.012K
45+
100.201K
46+
1.111M
47+
*/
48+
}
49+
}
50+

java-12/src/main/java/com/ibrahimatay/Main.java

-7
This file was deleted.

0 commit comments

Comments
 (0)