Compact Number Formatting = Kompaktowe formatowanie liczb.
Możliwości języka Java rozszerzono o formatowanie liczb do postaci kompaktowej, krótkiej i czytelnej dla człowieka. Kompaktowe formaty liczb zostały zdefiniowane tutaj.
Więcej informacji dostępne jest tutaj.
Klasy
NumFormat1
Klasa przedstawia skróty dotyczące języka polskiego.
package numformat; import java.text.*; import java.util.*; public class NumFormat1 { public static void main(String[] args){ NumberFormat fmt = NumberFormat.getCompactNumberInstance(Locale.getDefault(), NumberFormat.Style.SHORT); String result1 = fmt.format(1000); System.out.println(result1); String result2= fmt.format(1000000); System.out.println(result2); String result3= fmt.format(1000000000); System.out.println(result3); String result4 = fmt.format(1400); System.out.println(result4); String result5 = fmt.format(1500); System.out.println(result5); } }
A oto wynik:
1 tys. 1 mln 1 mld 1 tys. 2 tys.
Zwróćmy uwagę, że 1400 = 1 tys., a 1500 = 2 tys.
NumFormat2
Klasa przedstawia sposób utworzenia własnych skrótowych symboli.
package numformat; import java.text.*; import java.util.*; public class NumFormat2 { public static void main(String[] args) { final DecimalFormat decimalFormat = (DecimalFormat) NumberFormat.getNumberInstance(Locale.getDefault()); final String decimalPattern = decimalFormat.toPattern(); final DecimalFormatSymbols symbols = decimalFormat.getDecimalFormatSymbols(); final String[] compactPatterns = {"", "", "", "0KB", "00KB", "000KB", "0MB", "00MB", "000MB", "0GB", "00GB", "000GB", "0TB", "00TB", "000TB"}; CompactNumberFormat bytepl = new CompactNumberFormat(decimalPattern, symbols, compactPatterns); String result1 = bytepl.format(1000); System.out.println(result1); String result2 = bytepl.format(1000000); System.out.println(result2); String result3 = bytepl.format(1000000000); System.out.println(result3); } }
A oto wynik:
1KB 1MB 1GB