English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutoriales básicos de Java

Control de Flujo de Java

Arreglo de Java

Objetos Orientados en Java (I)

Objetos Orientados en Java (II)

Objetos Orientados en Java (III)

Manejo de excepciones en Java

Lista (List) de Java

Cola (Queue) de Java

Conjunto Map de Java

Conjunto Set de Java

Java Entrada/Salida (I)/O)

Java Reader/Writer

Otras temáticas de Java

Uso y ejemplo del método String format() de Java

Java métodos String (cadena)

El método String format() de Java devuelve una cadena formateada según los parámetros pasados.

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

String.format(String format, Object... args)

Atención:

  • format() es un método estático. Usamos el nombre de la clase String para llamar al método format().

  • En el código anterior, ... representa que se pueden pasar varios objetos a format().

Parámetros de format()

  • format - Cadena de formato

  • args - 0 o más parámetros

Valor de retorno de format()

  • Devuelve la cadena formateada

Ejemplo1:Java String format()

class Main {
  public static void main(String[] args) {
    String language = "Java";
    int number = 30;
    String result;
    // Formatear el objeto como cadena
    result = String.format("Language: %s", language);
    System.out.println(result); // Language: Java
    //Formatear el número como número hexadecimal
    result = String.format("Número hexadecimal: %x", number); // 1e
    System.out.println(result); // Número hexadecimal: 1e
  }
}

En el código anterior, preste atención a la código

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

Este "Language: %s" es unCadena de formato.

Reemplazar %s en la cadena de formato con el contenido de language. %s es un símbolo de formato.

Del mismo modo, %x se reemplaza por el valor hexadecimal de number en String.format("Number: %x", number).

Símbolo de formato

A continuación, se muestran los símbolos de formato comunes:

Símbolo de formatoDescripción
%b, %BDe acuerdo con el parámetro "true" o "false"
%s, %SUna cadena
%c, %CCarácter Unicode
%dEntero decimal (solo para enteros)
%oEntero octal (solo para enteros)
%x, %XEntero hexadecimal (solo para enteros)
%e, %EPara notación científica (usado para números de coma flotante)
%fPara números decimales (usado para números de coma flotante)

Ejemplo2Formato de número

class Main {
  public static void main(String[] args) {
    int n1 = 47;
    float n2 = 35.864f;
    double n3 = 44534345.76d;
    //Formateado como número octal
    System.out.println(String.format("1En formato octal: %o", n1));  // 57
    //Formateado como número hexadecimal
    System.out.println(String.format("1En formato hexadecimal: %x", n1));  // 2f
    System.out.println(String.format("1En formato hexadecimal: %X", n1));  // 2F
    //Formatear como cadena
    System.out.println(String.format("1Como cadena: %s", n1));  // 47
    System.out.println(String.format("2Como cadena: %s", n2));  // 35.864
    //Formato de notación científica
    System.out.println(String.format("3Método de notación científica: %g", n3)); // 4.45343e+07
  }
}

Resultado de salida

n1Octal: 57
n1Hexadecimal: 2f
n1Hexadecimal: 2F
n1Como cadena: 47
n2Como cadena: 35.864
n3Notación científica: 4.45343e+07

Puede usar múltiples especificadores de formato en la cadena de formato.

Ejemplo3Usar múltiples especificadores de formato

//Usar múltiples especificadores de formato
//Cadena de formato
class Main {
  public static void main(String[] args) {
    int n1 = 47;
    String text = "Result";
    System.out.println(String.format("%s\nHexadecimal: %x", text, n1));
  }
}

Resultado de salida

Result
Hexadecimal: 2f

Aquí, %s se reemplaza con el valor de text. Del mismo modo, %o se reemplaza con n1Valor hexadecimal.

El trabajo de Java String format()

Ejemplo4Formato decimal de número

class Main {
  public static void main(String[] args) {
    float n1 = -452.534f;
    double n2 = -345.766d;
    //Formatear el número de coma flotante tal cual
    System.out.println(String.format("1 = %f", n1)); // -452.533997
    System.out.println(String.format("2 = %f", n2)); // -345.766000
    //Mostrar hasta dos dígitos después del punto decimal
    System.out.println(String.format("1 = %.2f", n1)); // -452.53
    System.out.println(String.format("2 = %.2f", n2)); // -345.77
  }
}

Resultado de salida

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

Atención:Al usar la formateo con %f-452.534En este caso, obtenemos-452.533997. Esto no es porque el método format(). Java no devuelve una representación exacta de los números de coma flotante.

Usar %.2Al usar el especificador de formato f, format() proporciona dos dígitos después del punto decimal.

Ejemplo5Rellenar el número con espacios y 0

// usando más de un especificador de formato
// en una cadena de formato
class Main {
  public static void main(String[] args) {
    int n1 = 46, n2 = -46;
    String result;
        //Rellenar el número con espacios
        //La longitud de la cadena de caracteres es5
    result = String.format("|%5d|", n1); // |   46|
    System.out.println(result);
        //Rellenar el número con dígitos 0
        //La longitud de la cadena de caracteres es5
    result = String.format("|%5d|", n1); // |00046|
    System.out.println(result);
    //Usar el signo antes del número
    result = String.format("%+d", n1); // +46
    System.out.println(result);
    result = String.format("%+d", n2); // -46
    System.out.println(result);
        //Colocar el número negativo entre paréntesis
        //Eliminar el signo
    result = String.format("%(d", n2); // (46)
    System.out.println(result);
  }
}

Ejemplo6En el caso de hexadecimal y octal, usar 0x y 0

//Usar 0x antes de hexadecimal
//Usar 0 antes de 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
  }
}

Java String format() con entorno de lenguaje

Si es necesario usar el entorno de lenguaje especificado, el método String format() también tiene otra sintaxis.

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

Ejemplo7:Uso del entorno de lenguaje GERMAN en format()

//Uso de Locale
import java.util.Locale;
class Main {
  public static void main(String[] args) {
    int number = 8652145;
    String result;
    //Se utiliza el entorno de lenguaje actual
    result = String.format("Números: %%d", number);
    System.out.println(result);
    //Se utiliza el entorno de lenguaje GERMAN como primer parámetro
    result = String.format(Locale.GERMAN, "Números alemanes: %%d", number);
    System.out.println(result);
  }
}

Resultado de salida

Números: 8,652,145
Números alemanes: 8.652.145

Atención:En Alemania, los enteros se reemplazan por puntos.

Java métodos String (cadena)