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

Tutorial Básico de Java

Java controle de fluxo

Java array

Java orientado a objetos (I)

Java orientado a objetos (II)

Java orientado a objetos (III)

Tratamento de Exceções Java

Java Lista (List)

Java Queue (fila)

conjunto Map do Java

conjunto Set do Java

Java entrada e saída (I/O)/O)

Reader Java/Writer

Outros tópicos do Java

Uso e exemplo do método String.format() do Java

Métodos Java String (String)

O método String.format() do Java retorna uma string formatada com base nos parâmetros passados.

A sintaxe do método String.format() é:

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

Atenção:

  • format() é um método estático. Usamos o nome da classe String para chamar o método format().

  • No código acima, ... representa que podem ser passados vários objetos para format().

Parâmetros do format()

  • format - String de formato

  • args - 0 ou mais parâmetros

Retorno do format()

  • Retorna string formatada

Exemplo1:Formato de string Java

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

No código acima, note o código

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

Este "Language: %s" é umString de formato.

Substitua %s no string de formato pelo conteúdo de language. %s é um prefixo de formato.

Da mesma forma, %x substitui pelo valor hexadecimal de number no String.format("Number: %x", number).

Prefixo de formato

A seguir estão os prefixos de formato comuns:

PrefixoDescrição
%b, %BPara parâmetro "true" ou "false"
%s, %SUma string
%c, %CCaractere Unicode
%dInteiro decimal (apenas para inteiros)
%oInteiro octal (apenas para inteiros)
%x, %XInteiro hexadecimal (apenas para inteiros)
%e, %EPara número científico (usado para números de ponto flutuante)
%fPara número decimal (usado para números de ponto flutuante)

Exemplo2:Formato de número

class Main {
  public static void main(String[] args) {
    int n1 = 47;
    float n2 = 35.864f;
    double n3 = 44534345.76d;
    //Formatado como número octal
    System.out.println(String.format("1Em octal: %o", n1));  // 57
    //Formatado como número hexadecimal
    System.out.println(String.format("1Em hexadecimal: %x", n1));  // 2f
    System.out.println(String.format("1Em hexadecimal: %X", n1));  // 2F
    //Formatado como string
    System.out.println(String.format("1Como string: %s", n1));  // 47
    System.out.println(String.format("2Como string: %s", n2));  // 35.864
    //Formato de número científico
    System.out.println(String.format("3Sistema de número científico: %g", n3)); // 4.45343e+07
  }
}

Resultados de Saída

n1Octal: 57
n1Hexadecimal: 2f
n1Hexadecimal: 2F
n1Como string: 47
n2Como string: 35.864
n3Notação científica: 4.45343e+07

Você pode usar vários especificadores de formato na string de formato.

Exemplo3usando vários especificadores de formato

//usando vários especificadores de formato
//String 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));
  }
}

Resultados de Saída

Result
Hexadecimal: 2f

Aqui, %%s é substituído pelo valor de text. Da mesma forma, %%o é substituído por n1o valor hexadecimal.

O trabalho do Java String format()

Exemplo4Formato decimal:

class Main {
  public static void main(String[] args) {
    float n1 = -452.534f;
    double n2 = -345.766d;
    //Formatar o número de ponto flutuante como está
    System.out.println(String.format("1 =%f", n1)); // -452.533997
    System.out.println(String.format("2 =%f", n2)); // -345.766000
    //Mostrar até duas casas decimais após o ponto decimal
    System.out.println(String.format("1 =%.2f", n1)); // -452.53
    System.out.println(String.format("2 =%.2f", n2)); // -345.77
  }
}

Resultados de Saída

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

Atenção:ao formatar com %%f-452.534ao-452.533997. Isso não é porque o método format(). A Java não retorna a representação exata de números de ponto flutuante.

Use %%.2ao formatar com o especificador f, o método format() oferece dois dígitos após o ponto decimal.

Exemplo5Use espaços e zeros para preencher o número

// usando mais de um especificador de formato
// em um string de formato
class Main {
  public static void main(String[] args) {
    int n1 = 46, n2 = -46;
    String result;
        //Preencha o número com espaços
        //O comprimento da string é5
    result = String.format("|%5d|", n1); // |   46|
    System.out.println(result);
        //Preencha o número com zeros
        //O comprimento da string é5
    result = String.format("|%5d|", n1); // |00046|
    System.out.println(result);
    //Use um sinal antes do número
    result = String.format("%+d", n1); // +46
    System.out.println(result);
    result = String.format("%+d", n2); // -46
    System.out.println(result);
        //Coloque números negativos entre parênteses
        //e remove o sinal
    result = String.format("%(d", n2); // (46)
    System.out.println(result);
  }
}

Exemplo6Use 0x e 0 antes do hexadecimal e octal

//Use 0x antes do hexadecimal
//Use 0 antes do 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() com ambiente de linguagem

Se for necessário usar o ambiente de linguagem especificado, o método String format() também possui outra sintaxe.

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

Exemplo7:Usar o ambiente de linguagem GERMAN no format()

//Usar Locale
import java.util.Locale;
class Main {
  public static void main(String[] args) {
    int number = 8652145;
    String result;
    //Usar o ambiente de linguagem atual
    result = String.format("Números: %%d", number);
    System.out.println(result);
    //Usar o ambiente de linguagem GERMAN como primeiro parâmetro
    result = String.format(Locale.GERMAN, "Números Alemães: %%d", number);
    System.out.println(result);
  }
}

Resultados de Saída

Números: 8,652,145
Números Alemães: 8.652.145

Atenção:Em Alemanha, o inteiro é substituído por ponto para vírgula.

Métodos Java String (String)