Formatação Numérica de Saída de Impressão

Formatação Numérica de Saída de Impressão

Anterior você viu o uso de print e println métodos para a impressão de cadeias de caracteres para a saída padrão (System.out). Uma vez que todos os números podem ser convertidos para strings (como você verá mais tarde nesta lição), você pode usar estes métodos para imprimir uma mistura arbitrária de strings e números., A linguagem de programação Java tem outros métodos, no entanto, que lhe permitem exercer muito mais controle sobre sua saída de impressão quando os números estão incluídos.

A printf e format Métodos

java.io pacote inclui um PrintStream classe tem dois métodos de formatação que você pode usar para substituir o print e println. Estes métodos, format e printf, são equivalentes um ao outro., O familiar System.out que você tem sido usando acontece para ser um PrintStream objeto, de modo que você pode invocar PrintStream métodos de System.out. Assim, você pode usar format ou printf em qualquer lugar no seu código onde você já vem usando print ou println., Por exemplo,

System.out.format(.....);

A sintaxe para esses dois java.io.PrintStream métodos é o mesmo:

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

, onde format é uma seqüência de caracteres que especifica a formatação a ser utilizado e args é uma lista de variáveis a ser impresso usando a formatação. Um exemplo simples seria

O primeiro parâmetro, format, é uma cadeia de formato que especifica como os objetos no segundo parâmetro, args, devem ser formatados., The format string contains plain text as well as format specificiers, which are special characters that format the arguments of Object... args. (The notation Object... args is called varargs, which means that the number of arguments may vary.)

os especificadores de formato começam com um sinal percentual (%) e terminam com um conversor. O conversor é um caractere que indica o tipo de argumento a ser formatado. Entre o sinal de percentagem ( % ) e o Conversor você pode ter opções e especificadores opcionais., Existem muitos conversores, bandeiras, e especificadores, que estão documentadas no java.util.Formatter

Aqui está um exemplo:

int i = 461012;System.out.format("The value of i is: %d%n", i);

%d especifica que a única variável é um número inteiro decimal. O%n é um personagem newline independente de plataforma. A saída é:

The value of i is: 461012

printf e format métodos estão sobrecarregados., Cada um tem uma versão com a seguinte sintaxe:

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

Para imprimir os números no sistema francês (onde é utilizada uma vírgula no lugar da casa decimal em inglês representação de números em ponto flutuante), por exemplo, você usaria:

Exemplo

a tabela A seguir lista alguns dos conversores e bandeiras que são usados no programa de exemplo, TestFormat.java, que segue a tabela.,

Converters and Flags Used in TestFormat.java
Converter Flag Explanation
d A decimal integer.
f A float.
n A new line character appropriate to the platform running the application. You should always use %n, rather than \n.,
tB uma data& conversão Temporal—nome completo do mês específico do local.
td, te data & conversão de tempo—dia 2 dígitos do mês. td tem zeros líderes conforme necessário, te não.
ty tY data & conversão de tempo—ty = ano de 2 dígitos, tY = ano com 4 dígitos.
tl uma data& hora de conversão em Relógio de 12 horas.,
tM data & conversão de tempo—minutos em 2 dígitos, com zeros à esquerda quando necessário.
tp uma data& conversão Temporal—am / pm específica local (caso inferior).
tm uma data &conversão Temporal—meses em 2 dígitos, com zeros iniciais conforme necessário.,
tD A date & time conversion—date as %tm%td%ty
08 Eight characters in width, with leading zeroes as necessary.
+ Includes sign, whether positive or negative.
, Includes locale-specific grouping characters.
Left-justified..
.3 Three places after decimal point.
10.,3 dez caracteres em largura, justificável à direita, com três casas decimais.

o programa seguinte mostra alguma da formatação que você pode fazer comformat. A saída é mostrada entre aspas no comentário embutido:

nota: a discussão nesta secção cobre apenas as bases dos métodos format e printf. Mais detalhes podem ser encontrados na seçãoBasic I/O da trilha essencial, na página “formatação”.,
UsingString.format to create strings is covered in Strings.

a classe DecimalFormat

pode usar a classe

para controlar a visualização de zeros, prefixos e sufixos iniciais e finais, agrupando (milhares) separadores e o separador decimal.DecimalFormatoferece uma grande flexibilidade na formatação de números, mas pode tornar o seu código mais complexo.,

O exemplo que se segue cria um id

objeto,myFormatter, passando uma cadeia de padrão para oDecimalFormatconstrutor.,format()métodoDecimalFormatherda deNumberFormat, em seguida, é chamado pormyFormatter—aceita umdoublevalor como um argumento e retorna o número formatado em uma seqüência de caracteres:

Aqui está um exemplo de um programa que ilustra o uso de DecimalFormat:

O resultado é:

123456.789 ###,###.### 123,456.789123456.789 ###.## 123456.79123.78 000000.000 000123.78012345.67 $###,###.### $12,345.67

a tabela A seguir explica cada linha de saída.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *