Die printf-Methode in Java wird für die formatierte Ausgabe verwendet.

Die Formatierung legt die Form der Ausgabe fest, einschließlich Genauigkeit von Zahlen, Zeichenbreite, Datumsformate usw. Nachfolgend sind einige gängige Formatbezeichner und ihre Verwendung aufgeführt:

String-Formatierung

  • %s : Zeichenkette ausgeben

Beispiel

System.out.printf("%s", "hello world"); // Ausgabe "hello world"

Ganzzahlformatierung

  • %d : gibt eine dezimale Ganzzahl aus
  • %o : gibt eine oktale Ganzzahl aus
  • %x : gibt eine hexadezimale Ganzzahl aus
  • %X : gibt eine hexadezimale Ganzzahl in Großbuchstaben aus

Beispiel

System.out.printf("%d %o %x %X", 10, 10, 10, 10); // Ausgabe "10 12 a A"

Formatierung von Gleitkommazahlen

  • %f : gibt eine Gleitkommazahl aus
  • %e : gibt eine Gleitkommazahl in wissenschaftlicher Notation aus (kleines e)
  • %E : gibt eine Gleitkommazahl in wissenschaftlicher Notation aus (großes E)
  • %.nf : steuert die Anzahl der Nachkommastellen, n ist eine Zahl

Beispiel

System.out.printf("%.2f %e %E", 3.1415926, 3.1415926, 3.1415926); // Ausgabe "3.14 3.141593e+00 3.141593E+00"

Formatierung von booleschen Werten

  • %b : booleschen Wert ausgeben

Beispiel

System.out.printf("%b", true); // Ausgabe "true"

Zeichenformatierung

  • %c : Zeichen ausgeben

Beispiel

System.out.printf("%c", 'a'); // Ausgabe "a"

Formatierung von Breite und Genauigkeit

  • %n$ : den n-ten Parameter angeben
  • %m.n : Breite und Genauigkeit steuern, m ist die minimale Breite, n ist die Anzahl der Nachkommastellen

Beispiel

System.out.printf("%2d %5.2f %s", 10, 3.1415926, "hello"); // Ausgabe "10 3.14 hello"

Nachfolgend finden Sie eine vollständige Liste der in der printf-Methode in Java verfügbaren Formatbezeichner:

  • %d: vorzeichenbehaftete Dezimal-Ganzzahl
  • %o: vorzeichenlose Oktalzahl
  • %x, %X: vorzeichenlose Hexadezimalzahl, jeweils in Klein- bzw. Großbuchstaben dargestellt
  • %f, %F: dezimale Gleitkommazahl mit Dezimalpunkt, jeweils in Klein- bzw. Großbuchstaben dargestellt
  • %e, %E: Gleitkommazahl mit Exponent, jeweils in Klein- bzw. Großbuchstaben dargestellt
  • %g, %G: wählt abhängig von der Größenordnung des Werts automatisch das Format %f oder %e, jeweils in Klein- bzw. Großbuchstaben dargestellt
  • %a, %A: hexadezimale Gleitkommazahl, jeweils in Klein- bzw. Großbuchstaben dargestellt
  • %c: Zeichentyp, gibt ein einzelnes Zeichen aus
  • %s: Zeichenkettentyp, gibt eine Zeichenkette aus
  • %n: Zeilenumbruchzeichen
  • %%: gibt ein Prozentzeichen % aus
  • %h, %H: Hashcode, jeweils in Hexadezimal und Großbuchstaben-Hexadezimal dargestellt
  • %t, %T: Formatierung von Datum und Uhrzeit unter Verwendung spezifischer Konvertierungszeichen, z. B. steht %tY für das Jahr, %tB für den vollständigen Monatsnamen
  • %b, %B: boolescher Typ, gibt true oder false aus, dargestellt mit Klein- bzw. Großbuchstaben
  • %S: gibt die Zeichenkette in Großbuchstaben aus

Nachfolgend ist eine Liste der Symbole in der Java-Methode printf aufgeführt, die zum Formatieren von Datumsangaben verwendet werden können:

  • %tB: lokalisierter vollständiger Monatsname
  • %tb: lokalisierter abgekürzter Monatsname
  • %tA: lokalisierter vollständiger Wochentagsname
  • %ta: lokalisierter abgekürzter Wochentagsname
  • %tY: vierstelliges Jahr
  • %ty: zweistelliges Jahr
  • %tm: zweistelliger Monat
  • %td: zweistelliger Tag des Monats
  • %te: ein- oder zweistelliger Tag des Monats
  • %tH: Stunde im 24-Stunden-Format
  • %tI: Stunde im 12-Stunden-Format
  • %tM: Minuten
  • %tS: Sekunden
  • %tp: Vormittag oder Nachmittag (AM/PM)
  • %tZ: Zeitzone

Beispiel

import java.util.Date; /** * printf für die Ausgabe verwenden * Wichtige technische Punkte * Verwenden Sie die printf-Methode von java.io.PrintStream, um eine Ausgabe im C-Stil zu implementieren * Der erste Parameter der printf-Methode ist das Ausgabeformat, und der zweite Parameter ist variabel lang und repräsentiert die auszugebenden Datenobjekte*/ /*** Ausgabezeichenfolge ***/ public class Printf { public static void main(String[] args) { /*%s bedeutet Ausgabezeichenfolge, das heißt, %s im Muster durch die folgende Zeichenfolge ersetzen*/ //%n bedeutet Zeilenumbruch System.out.printf("%s", new Integer(1212)); //Es kann auch mehrere Parameter unterstützen System.out.printf("%s%n", "Zeilenende"); //%S gibt die Zeichenkette in Großbuchstaben aus System.out.printf("%s = %s%n", "Name", "Zhangsan"); //Wenn mehrere Parameter unterstützt werden, können Sie Argumentindizes zwischen %s einfügen; 1$ gibt die erste Zeichenkette an, 3$ gibt die dritte Zeichenkette an System.out.printf("%S = %s%n", "Name", "Zhangsan"); //** Booleschen Typ ausgeben ** System.out.printf("%1$s = %3$s %2$s%n", "Name", "san", "Zhang"); /*** Ganzzahltyp ausgeben ***/ System.out.printf("true = %b; false = ", true); System.out.printf("%b%n", false); /*%d bedeutet, die Ganzzahl als Dezimalzahl zu formatieren*/ Integer iObj = 342; //%o bedeutet, die Ganzzahl als Oktalzahl zu formatieren System.out.printf("%d; %d; %d%n", -500, 2343L, iObj); //%x bedeutet, die Ganzzahl als Hexadezimalzahl zu formatieren System.out.printf("%o; %o; %o%n", -500, 2343L, iObj); //%X bedeutet, die Ganzzahl als hexadezimale Ganzzahl zu formatieren, wobei Buchstaben in Großbuchstaben ausgegeben werden System.out.printf("%x; %x; %x%n", -500, 2343L, iObj); //** Ausgabe des Gleitkommatyps ** System.out.printf("%X; %X; %X%n", -500, 2343L, iObj); /*%e bedeutet, eine Gleitkommazahl in wissenschaftlicher Notation auszugeben*/ Double dObj = 45.6d; //%E bedeutet, eine Gleitkommazahl in wissenschaftlicher Notation in Großbuchstabenform auszugeben System.out.printf("%e; %e; %e%n", -756.403f, 7464.232641d, dObj); //%f bedeutet, eine Gleitkommazahl im Dezimalformat zu formatieren und auszugeben System.out.printf("%E; %E; %E%n", -756.403f, 7464.232641d, dObj); //Die Anzahl der Nachkommastellen kann ebenfalls begrenzt werden System.out.printf("%f; %f; %f%n", -756.403f, 7464.232641d, dObj); //** Ausgabe des Datumstyps ** System.out.printf("%.1f; %.3f; %f%n", -756.403f, 7464.232641d, dObj); /*%t bedeutet Formatierung des Datums- und Zeittyps; %T ist die Großbuchstabenform für Datum/Uhrzeit; nach %t gibt ein bestimmter Buchstabe verschiedene Ausgabeformate an*/ //Formatierung von Jahr, Monat, Tag Date date = new Date(); long dataL = date.getTime(); //Nach %t geben Sie mit y das Jahr des Datums aus (2-stelliges Jahr, z. B. 99) //Nach %t geben Sie mit m den Monat des Datums aus; nach %t geben Sie mit d den Tag des Datums aus //Nach %t geben Sie mit Y das Jahr des Datums aus (4-stelliges Jahr), System.out.printf("%1$ty-%1$tm-%1$td; %2$ty-%2$tm-%2$td%n", date, dataL); //Nach %t geben Sie mit B den vollständigen Namen des Monats des Datums aus; nach %t geben Sie mit b den abgekürzten Namen des Monats des Datums aus //Im Folgenden finden Sie gängige Datumskombinationen System.out.printf("%1$tY-%1$tB-%1$td; %2$tY-%2$tb-%2$td%n", date, dataL); //Nach %t formatieren Sie das Datum mit D als "%tm/%td/%ty" //Nach %t formatieren Sie das Datum mit F als "%tY-%tm-%td" System.out.printf("%1$tD%n", date); //** Ausgabe des Zeittyps ** System.out.printf("%1$tF%n", date); /*Stunden, Minuten, Sekunden ausgeben*/ //Nach %t geben Sie mit H die Stunde der Zeit aus (24-Stunden-Format); nach %t geben Sie mit I die Stunde der Zeit aus (12-Stunden-Format), //Nach %t geben Sie mit M die Minuten der Zeit aus; nach %t geben Sie mit S die Sekunden der Zeit aus //Nach %t geben Sie mit L die Millisekunden der Sekunden der Zeit aus System.out.printf("%1$tH:%1$tM:%1$tS; %2$tI:%2$tM:%2$tS%n", date, dataL); //Nach %t verwenden Sie p, um die Vormittags-/Nachmittagsinformation (AM/PM) der Uhrzeit auszugeben System.out.printf("%1$tH:%1$tM:%1$tS %1$tL%n", date); //Die folgenden sind gängige Zeitkombinationen System.out.printf("%1$tH:%1$tM:%1$tS %1$tL %1$tp%n", date); //Nach %t verwenden Sie R, um die Zeit als "%tH:%tM" zu formatieren //Nach %t verwenden Sie T, um die Zeit als "%tH:%tM:%tS" zu formatieren System.out.printf("%1$tR%n", date); //Nach %t verwenden Sie r, um die Zeit als "%tI:%tM:%tS %Tp" zu formatieren System.out.printf("%1$tT%n", date); //** Wochentag ausgeben ** System.out.printf("%1$tr%n", date); /*Nach %t verwenden Sie A, um den vollständigen Namen des Wochentags zu erhalten*/ //Nach %t verwenden Sie a, um den abgekürzten Namen des Wochentags zu erhalten System.out.printf("%1$tF %1$tA%n", date); //Vollständige Datums- und Uhrzeitinformationen ausgeben System.out.printf("%1$tF %1$ta%n", date); //* * In der printf-Methode gibt das Format "%s" den ersten Argumentwert des zweiten Parameters variabler Länge als Zeichenkette aus; * Das Format "%n" bedeutet Zeilenumbruch; das Format "%S" gibt die Zeichenkette in Großbuchstaben aus; verwenden Sie "n$" zwischen "%s", um * den n-ten Argumentwert des Parameters variabler Länge auszugeben. Das Format "%b" gibt den ersten Argumentwert * des zweiten Parameters variabler Länge als booleschen Wert aus. System.out.printf("%1$tc%n", date); } } /** * Das Format "%d" gibt als Dezimalganzzahl aus; "%o" gibt als Oktalzahl aus; "%x" gibt als Hexadezimalzahl aus; * "%X" gibt als Hexadezimalzahl aus, wobei die Buchstaben (A, B, C, D, E, F) in Großbuchstaben sind. Das Format "%e" gibt * Gleitkommazahlen in wissenschaftlicher Notation aus; "%E" gibt Gleitkommazahlen in wissenschaftlicher Notation mit e in Großbuchstaben aus; das Format * "%f" gibt als dezimale Gleitkommazahl aus; das Hinzufügen von ".n" zwischen "%f" bedeutet, beim Ausgeben n Nachkommastellen beizubehalten.*/ /** * Das Format "%t" gibt den Datums- und Zeittyp aus. Nach "%t" verwenden Sie y, um die zweistellige Jahreszahl des Datums auszugeben (z. B. 99), verwenden Sie m, * um den Monat des Datums auszugeben, verwenden Sie d, um den Tag des Datums auszugeben; nach "%t" verwenden Sie Y, um die vierstellige Jahreszahl des Datums auszugeben * (z. B. 1999), verwenden Sie B, um den vollständigen Namen des Monats des Datums auszugeben, verwenden Sie b, um den abgekürzten Namen des Monats des Datums auszugeben. Nach "%t" verwenden Sie D, * um das Datum im Format "%tm/%td/%ty" auszugeben, und verwenden Sie F, um das Datum im Format "%tY-%tm-%td" auszugeben.*/ /** * Die Formatierung mit "%t" repräsentiert den Typ des Datums-/Zeitabschnitts der Ausgabezeit. Nach "%t" steht y für die zweistellige Jahreszahl des Ausgabedatums (zum Beispiel 99), m * steht für den Monat des Ausgabedatums und d für die Tagesnummer des Ausgabedatums; nach "%t" steht Y für die vierstellige Jahreszahl des Ausgabedatums * (zum Beispiel 1999), B für den vollständigen Namen des Monats des Ausgabedatums und b für die Abkürzung des Monats des Ausgabedatums. Nach "%t" steht D * für die Formatierung des Ausgabedatums "%tm/%td/%ty" und F für die Formatierung des Ausgabedatums "%tY-%tm-%td".*/ /** * Nach "%t" steht H für die Stunde der Ausgabezeit (24-Stunden-Format), I für die Stunde der Ausgabezeit (12-Stunden-Format), M für die Minute * der Ausgabezeit, S für die Sekunde der Ausgabezeit, L für die Millisekunden innerhalb der Sekunde der Ausgabezeit und p dafür, ob die Ausgabezeit * AM oder PM ist. Nach "%t" gibt R die Zeit im Format "%tH:%tM" aus, T gibt die Zeit im Format "%tH:%tM:%tS" aus, * und r gibt die Zeit im Format "%tI:%tM:%tS %Tp" aus.*/ /** * Nach "%t" steht A für den vollständigen Namen des Ausgabedatums und a für den abgekürzten Wochentagsnamen des Ausgabedatums.*/