Formato de cadena de Java ()

El método Java String format () devuelve una cadena formateada según el argumento pasado.

La sintaxis del format()método String es:

 String.format(String format, Object… args)

Aquí,

  • format()es un método estático. Llamamos al format()método usando el nombre de la clase String.
  • en el código anterior significa que puede pasar más de un objeto format().

format () Parámetros

El format()método toma dos parámetros.

  • formato : una cadena de formato
  • args : 0 o más argumentos

formato () Valor de retorno

  • devuelve una cadena formateada

Ejemplo 1: formato Java String ()

 class Main ( public static void main(String() args) ( String language = "Java"; int number = 30; String result; // format object as a string result = String.format("Language: %s", language); System.out.println(result); // Language: Java // format number as a hexadecimal number result = String.format("Hexadecimal Number: %x", number); // 1e System.out.println(result); // Hexadecimal Number: 1e ) )

En el programa anterior, observe el código

 result = String.format("Language: %s", language);

Aquí "Language: %s"hay una cadena de formato .

%sen el formato, la cadena se reemplaza con el contenido del idioma. %ses un especificador de formato.

De manera similar, %xse reemplaza con el valor hexadecimal del número en String.format("Number: %x", number).

Especificadores de formato

Estos son los especificadores de formato de uso común:

Especificador Descripción
%b, %B "true"o "false"basado en el argumento
%s, %S una cuerda
%c, %C un carácter Unicode
%d un entero decimal (usado solo para enteros)
%o un entero octal (usado solo para enteros)
%x, %X un entero hexadecimal (usado solo para enteros)
%e, %E para notación científica (usado para números de punto flotante)
%f para números decimales (usado para números de coma flotante)

Ejemplo 2: formato de cadena de números

 class Main ( public static void main(String() args) ( int n1 = 47; float n2 = 35.864f; double n3 = 44534345.76d; // format as an octal number System.out.println(String.format("n1 in octal: %o", n1)); // 57 // format as hexadecimal numbers System.out.println(String.format("n1 in hexadecimal: %x", n1)); // 2f System.out.println(String.format("n1 in hexadecimal: %X", n1)); // 2F // format as strings System.out.println(String.format("n1 as string: %s", n1)); // 47 System.out.println(String.format("n2 as string: %s", n2)); // 35.864 // format in scientific notation System.out.println(String.format("n3 in scientific notation: %g", n3)); // 4.45343e+07 ) )

Salida

 n1 en octal: 57 n1 en hexadecimal: 2f n1 en hexadecimal: 2F n1 como cadena: 47 n2 como cadena: 35.864 n3 en notación científica: 4.45343e + 07

Puede utilizar más de un especificador de formato en la cadena de formato.

Ejemplo 3: uso de más de un especificador de formato

 // using more than one format specifiers // in a format string class Main ( public static void main(String() args) ( int n1 = 47; String text = "Result"; System.out.println(String.format("%shexadecimal: %x", text, n1)); ) )

Salida

 Resultado hexadecimal: 2f

Aquí, %sse reemplaza con el valor del texto. De manera similar, %ose reemplaza con el valor hexadecimal de n1.

Funcionamiento del formato Java String ()

Ejemplo 4: formato de números decimales

 class Main ( public static void main(String() args) ( float n1 = -452.534f; double n2 = -345.766d; // format floating-point as it is System.out.println(String.format("n1 = %f", n1)); // -452.533997 System.out.println(String.format("n2 = %f", n2)); // -345.766000 // show up to two decimal places System.out.println(String.format("n1 = %.2f", n1)); // -452.53 System.out.println(String.format("n2 = %.2f", n2)); // -345.77 ) )

Salida

 n1 = -452.533997 n2 = -345.766000 n1 = -452.53 n2 = -345.77

Nota: Cuando formateamos -452.534 usando %f, obtenemos -452.533997 . No es por el format()método. Java no devuelve la representación exacta de números de punto flotante.

Cuando %.2fse usa un especificador de formato, format()da dos números después del punto decimal.

Ejemplo 5: rellenar números con espacios y 0

 // using more than one format specifiers // in a format string class Main ( public static void main(String() args) ( int n1 = 46, n2 = -46; String result; // padding number with spaces // the length of the string will be 5 result = String.format("|%5d|", n1); // | 46| System.out.println(result); // padding number with numbers 0 // the length of the string will be 5 result = String.format("|%05d|", n1); // |00046| System.out.println(result); // using signs before numbers result = String.format("%+d", n1); // +46 System.out.println(result); result = String.format("%+d", n2); // -46 System.out.println(result); // enclose negative number within parenthesis // and removing the sign result = String.format("%(d", n2); // (46) System.out.println(result); ) )

Ejemplo 6: uso de 0x y 0 antes de hexadecimal y octal

 // using 0x before hexadecimal // using 0 before octal class Main ( public static void main(String() args) ( int n = 46; System.out.println(String.format("%#o", n)); // 056 System.out.println(String.format("%#x", n)); // 0x2e ) )

Formato de cadena Java () con configuración regional

El format()método String también tiene otra sintaxis si tiene que trabajar con la configuración regional especificada.

 String.format(Locale l, String format, Object… args)

Ejemplo 7: Uso de la configuración regional ALEMANA en formato ()

 // to use Locale import java.util.Locale; class Main ( public static void main(String() args) ( int number = 8652145; String result; // using the current locale result = String.format("Number: %,d", number); System.out.println(result); // using the GERMAN locale as the first argument result = String.format(Locale.GERMAN, "Number in German: %,d", number); System.out.println(result); ) )

Salida

 Número: 8.652.145 Número en alemán: 8.652.145

Nota: En Alemania, los números enteros se separan con en .lugar de ,.

Articulos interesantes...