logo

Formattazione dell'output Java

A volte vogliamo che l'output di un programma venga stampato in un dato formato specifico. Nel linguaggio di programmazione C ciò è possibile utilizzando la funzione printf(). In questa sezione discuteremo la diversa formattazione dell'output.

Parliamo di come possiamo formattare l'output in Java.

Esistono due metodi che possono essere utilizzati per formattare l'output in Java:

visualizzatore Java
  • Utilizzando il metodo printf()
  • Utilizzando il metodo format( ).

Formattazione dell'output utilizzando il metodo System.out.printf()

L'implementazione di questo metodo è molto semplice poiché è simile alla funzione printf() nella programmazione C.

FormattedOutput1.java

 public class FormattedOutput1 { public static void main( String args[ ] ) { // printing the string value on the console String str = ' JavaTpoint ' ; System.out.printf( ' 
 Printing the String value : %s 
 ', str ) ; // printing the integer value on the console int x = 512 ; System.out.printf( ' 
 Printing the integer value : x = %d 
 ', x ) ; // printing the decimal value on the console float f = 5.25412368f ; System.out.printf( ' 
 Printing the decimal value : %f 
 ', f ) ; // this formatting is used to specify the width un to which the digits can extend System.out.printf( ' 
 Formatting the output to specific width : n = %.4f 
 ', f ) ; // this formatting will print it up to 2 decimal places System.out.printf( ' 
 Formatted the output with precision : PI = %.2f 
 ', f ) ; // here number is formatted from right margin and occupies a width of 20 characters System.out.printf( ' 
 Formatted to right margin : n = %20.4f 
 ', f ) ; } } 

Produzione:

Java per la pausa
 Printing the String value : JavaTpoint Printing the integer value : x = 512 Printing the decimal value : 5.254124 Formatting the output to specific width : n = 5.2541 Formatted the output with precision : PI = 5.25 Formatted to right margin : n = 5.2541 

System.out.format() è equivalente a printf() e può anche essere utilizzato.

Un punto importante da notare è che System.out.print() e System.out.println() accettano un singolo argomento, ma il metodo printf() può accettare più argomenti.

Formattazione utilizzando la classe DecimalFormat:

DecimalFormat viene utilizzato per formattare i numeri decimali.

FormattedOutput2.java

 import java.text.DecimalFormat ; // definition of the class public class FormattedOutput2 { public static void main( String args[ ] ) { double x = 123.4567 ; // printing the number System.out.printf( ' 
 The number is : %f 
 ', x ) ; // printing only the numeric part of the floating number DecimalFormat ft = new DecimalFormat( ' #### ' ) ; System.out.println( ' 
 Without fraction part the number is : ' + ft.format( x ) ) ; // printing the number only upto 2 decimal places ft = new DecimalFormat( ' #.## ' ) ; System.out.println( ' 
 Formatted number with the specified precision is = ' + ft.format( x ) ) ; // automatically appends zero to the rightmost part of decimal, instead of #, we use digit 0 ft = new DecimalFormat( ' #.000000 ' ) ; System.out.println( ' 
 Appending the zeroes to the right of the number = ' + ft.format( x ) ) ; // automatically appends zero to the leftmost of decimal number instead of #, we use digit 0 ft = new DecimalFormat( ' 00000.00 ' ) ; System.out.println( ' 
 Appending the zeroes to the left of the number = '+ ft.format( x ) ) ; // formatting money in dollars double income = 550000.789 ; ft = new DecimalFormat( ' $###,###.## ' ) ; System.out.println( ' 
 Your Formatted Income in Dollars : ' + ft.format( income ) ) ; } } 

Produzione:

 The number is : 123.456700 Without fraction part the number is : 123 Formatted number with the specified precision is = 123.46 Appending the zeroes to the right of the number = 123.456700 Appending the zeroes to the left of the number = 00123.46 Your Formatted Income in Dollars : 0,000.79 

Specificatori di formato stringa Java

Qui forniamo una tabella di identificatori di formato supportati da Java String.

mysql crea utente
Identificatore di formato Tipo di dati Produzione
%UN virgola mobile (tranne BigDecima l) Restituisce l'output esadecimale del numero a virgola mobile.
%B Qualsiasi tipo 'true' se diverso da null, 'false' se null
%C Carattere Carattere Unicode
%D intero ( incl. byte, short, int, long, bigint ) Intero decimale
virgola mobile Numero decimale in notazione scientifica
%F virgola mobile Numero decimale
%G virgola mobile Numero decimale, eventualmente in notazione scientifica a seconda della precisione e del valore.
%H qualsiasi tipo Hex Stringa di valore dal metodo hashCode().
%N Nessuno Separatore di linea specifico per la piattaforma.
%O intero ( incl. byte, short, int, long, bigint ) Numero ottale
%S qualsiasi tipo Valore stringa
%T Data/Ora (incl. lungo, Calendario, Data e TemporalAccessor) %t è il prefisso per le conversioni di data/ora. Successivamente sono necessari più flag di formattazione. Vedere la conversione di data/ora di seguito.
%X intero ( incl. byte, short, int, long, bigint ) Stringa esadecimale.