Método NumberFormat getCompactNumberInstance() en Java con ejemplos

NumberFormat es la clase base abstracta para todos los formatos de números. Esta clase proporciona la interfaz para formatear y analizar números. La clase NumberFormat también proporciona métodos para determinar qué lugares (EE. UU., Italia, etc.) tienen formatos de números y sus nombres

NumberFormat lo ayuda a formatear y analizar números para cualquier configuración regional. Su código puede ser completamente independiente de las convenciones locales para puntos decimales, separadores de miles o incluso los dígitos decimales particulares utilizados, o si el formato de número es incluso decimal.

Jerarquía de formato de número de clase:

java.lang.Object
    java.text.Format
        java.text.NumberFormat

Constructor:

Constructor  Descripción
Formato numérico() Único constructor. (Para la invocación por parte de constructores de subclases, normalmente implícito).

Sintaxis :

public abstract class NumberFormat extends Format

método getCompactNumberInstance():

Nota : el método getCompactNumberInstance() se agrega en Java 12. Por lo tanto, asegúrese de tener Java 12 o superior instalado en su máquina. Puede comprobar la versión de Java por:

java -version

Escriba el comando anterior en cmd y verifique la versión. Debe estar por encima de Java 12.  

Producción

java version "13.0.2" 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

Nota : este método se agrega en Java 12. Por lo tanto, asegúrese de tener Java 12 o más instalado en su máquina. Puede verificar la versión de Java mediante el comando de sondeo de la siguiente manera:

java -version

Escriba el comando anterior en cmd y verifique la versión. Debe estar por encima de Java 12.  

Producción:

java version "13.0.2" 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

Aquí la versión de Java es 13.0.2.

Implementación:

Método 1: getCompactNumberInstance()

Es un método integrado de java.text.NumberFormat que devuelve un formato de número compacto para la configuración regional predeterminada FORMAT con estilo de formato «CORTO». 

Sintaxis:

public static NumberFormat getCompactNumberInstance()

Parámetros: Esta función no acepta ningún parámetro.

Valor de retorno: una instancia de NumberFormat para formatear números compactos.

Ejemplo

Java

// Java Program to Implement NumberFormat class by
// Illustrating getCompactNumberInstance() Method 
  
// Importing required classes
import java.util.*;
import java.text.NumberFormat;
import java.util.Locale;
  
// Main class
class GFG {
      
    // Main driver method  
    public static void main(String args[])
    {
        // Creating an object of NumberFormat class
        NumberFormat nf
            = NumberFormat.getCompactNumberInstance();
  
        // Print and display commands 
        System.out.println(
            "This method returns in NumberFormat.Style.SHORT:");
        System.out.println("Result: " + nf.format(100));
        System.out.println("Result: " + nf.format(10000));
        System.out.println("Result: " + nf.format(120300));
        System.out.println("Result: " + nf.format(2120000));
        System.out.println("Result: "
                           + nf.format(1240000300));
    }
}

Producción:

This method returns in NumberFormat.Style.SHORT:
Result: 100
Result: 10K
Result: 120K
Result: 2M
Result: 1B

Método 2: getCompactNumberInstance​()

Es un método integrado de java.text.NumberFormat que devuelve un formato de número compacto para la configuración regional y el estilo de formato especificados. 

Sintaxis :

public static NumberFormat getCompactNumberInstance​(Locale locale, NumberFormat.Style formatStyle)

Parámetros: Esta función acepta 2 parámetros:

  • El local deseado
  • El estilo para dar formato a un número.

Valor devuelto: instancia de NumberFormat para el formato compacto de números

Excepción: este método arroja NullPointerException si la configuración regional o formatStyle es nulo

Ejemplo 1 

Java

// Java Program to Implement NumberFormat class by
// Illustrating getCompactNumberInstance​() Method
  
// Importing required classes
import java.text.NumberFormat;
import java.util.Locale;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args)
    {
        // Creating an object of NumberFormat class
        NumberFormat nfLong
            = NumberFormat.getCompactNumberInstance(
                Locale.US, NumberFormat.Style.LONG);
  
        // Print and display commands
        System.out.println(nfLong.format(100));
        System.out.println(nfLong.format(1000));
        System.out.println(nfLong.format(10000));
        System.out.println(nfLong.format(100000));
  
        // Again creating an object of NumberFormat class
        NumberFormat nfShort
            = NumberFormat.getCompactNumberInstance(
                Locale.US, NumberFormat.Style.SHORT);
  
        // Print and display commands
        System.out.println(nfShort.format(100));
        System.out.println(nfShort.format(1000));
        System.out.println(nfShort.format(10000));
        System.out.println(nfShort.format(100000));
    }
}

Producción:

100
1 thousand
10 thousand
100 thousand
100
1K
10K
100K

Ejemplo 2

Java

// Java Program to Implement NumberFormat class by
// Illustrating getCompactNumberInstance​() Method
  
// Importing required classes
import java.text.NumberFormat;
import java.util.Locale;
  
// Main class
public class GFG {
  
    // Main driver method
    public static void main(String[] args) throws Exception
    {
        // Creating an object of NumberFormat class
        NumberFormat fmt
            = NumberFormat.getCompactNumberInstance(
                Locale.US, NumberFormat.Style.LONG);
  
        // Print and display commands
        System.out.println(fmt.parse("100"));
        System.out.println(fmt.parse("1 thousand"));
        System.out.println(fmt.parse("10 thousand"));
        System.out.println(fmt.parse("100 thousand"));
    }
}

Producción:

100
1000
10000
100000

 Nota: En el programa anterior, hemos utilizado el método fmt.parse() para analizar números compactos en un patrón LARGO.

Publicación traducida automáticamente

Artículo escrito por shantanujain18 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *