In diesem Artikel wird wie folgt die Verwendung von Java-String-Formatierungsformating-String.Format () vorgestellt:
Format der regulären Typen
Die Format () -Methode der String -Klasse wird verwendet, um formatierte Zeichenfolgen zu erstellen und mehrere String -Objekte zu verkettet. Schüler, die mit der C -Sprache vertraut sind, sollten sich an die Sprintf () -Methode der C -Sprache erinnern, und es gibt Ähnlichkeiten zwischen beiden. Die Format () -Methode hat zwei überlastete Formulare.
Format (String -Format, Objekt ... Args) Neue Zeichenfolge verwendet das lokale Gebietsschema, um Zeichenfolgenformate und Parameter zu erstellen, um formatierte neue Zeichenfolgen zu generieren.
Format (Gebietsschema, String -Format, Objekt ... Argumente) Verwenden Sie das angegebene Gebietsschema, um Zeichenfolgenformate und Parameter zu erstellen, um formatierte Zeichenfolgen zu generieren.
Zeigen Sie verschiedene Konverter an, um die Konvertierung verschiedener Datentypen in Zeichenfolgen zu implementieren, wie in der Abbildung gezeigt.
Konverter | veranschaulichen | Beispiel |
%S | String -Typ | "Mingrisoft" |
%C | Zeichentyp | 'M' |
%B | Boolescher Typ | WAHR |
%D | Ganzzahltyp (dezimal) | 99 |
%X | Ganzzahltyp (Hexadezimal) | Ff |
%O | Ganzzahltyp (Oktal) | 77 |
%F | Schwimmender Punkttyp | 99,99 |
%A | Hexadezimaler schwimmender Punkttyp | Ff.35ae |
%e | Indextyp | 9.38e+5 |
%G | Allgemeine schwimmende Punkttypen (kürzer von F- und E -Typen) | |
%H | Hash -Code | |
%% | Prozentualer Typ | % |
%N | Linie bricht | |
%tx | Datums- und Uhrzeittyp (x repräsentiert verschiedene Datums- und Zeitkonvertierungszeichen |
Testfälle
public static void main (String [] args) {String str = null; Str = StringFormat ("Hi,%s", "Wang li"); Systemoutprintln (STR); Str = StringFormat ("Hi,%s:%s%s", "Wang Nan", "Wang li", "Wang Zhang"); Systemoutprintln (STR); Systemoutprintf ("Der Großbuchstaben A ist: %c %n", 'a'); Systemoutprintf ("3> 7 Ergebnis ist: %b %n", 3> 7); Systemoutprintf ("Hälfte von" 100 ist: %d %n ", 100/2); SystemoutPrintf (" 100 Hexadezimalzahl ist: %x %n ", 100); Systemoutprintf (" 100's Angular Number ist: %o %n ", 100); Der oben genannte Preis ist: %A %n ", 50*85); Systemoutprintf (" Der Index des oben genannten Preises repräsentiert: %e %n ", 50*85); Systemoutprintf (" Die kürzere Länge des Index des obigen Preis Hash Code von Buchstaben A ist: %H %n ", 'a');}Ausgangsergebnis
Hi, wang li hi, wang nan: wang li wang zhangs bild a detacidized: a 3> 7 Das Ergebnis ist: falsche Hälfte von 100 IS: 50 100 IS: 64 100 IS 80 144 50 Yuan Buch 5 Rabatt Is: 500000 Yuan Die Hexadecimalzahl ist: 0x54p5 Der Index oben. 50000 Der obige Rabatt beträgt 85% der Hash Code von Buchstaben A IS: 41
Das mit dem Konvertierungssymbol gepaarte Logo ist in der Abbildung dargestellt.
| Logo | veranschaulichen | Beispiel | Ergebnis |
| + | Fügen Sie Symbole für positive oder negative Zahlen hinzu | ("%+d", 15) | +15 |
| - - | Links ausgerichtet | ("%-5d", 15) | | 15 | |
| 0 | Fügen Sie 0 vor der Nummer hinzu | ("%04d", 99) | 0099 |
| Räume | Fügen Sie vor einer Ganzzahl eine bestimmte Anzahl von Leerzeichen hinzu | ("% 4d", 99) | | 99 | |
| Anwesend | Gruppenzahlen mit ",", " | ("%, f", 9999,99) | 9.999,990000 |
| ( | Verwenden Sie Klammern, um negative Zahlen einzuschließen | ("%(f", -99,99) | (99.990000) |
| # | Wenn es sich um einen schwimmenden Punkt handelt, enthält es einen Dezimalpunkt. Wenn es hexadezimal oder arth ist, fügt es 0x oder 0 hinzu | ("%#x", 99) | ("%#O", 99) |
| < | Formatieren Sie die vom vorherigen Konverter beschriebenen Parameter | (" %f und %<3,2f", 99,45) | 99.450000 und 99.45 |
| $ | Formatierter Parameterindex | ("%1 $ D,%2 $ S", 99, "ABC") | 99, ABC |
Testfälle
public static void main (String [] args) {String str = null; // $ verwenden Str = StringFormat ("Formatparameter verwenden $: %1 $ D, %2 $ S", 99, "ABC"); Systemoutprintln (STR); //+verwenden systemoutprintf ("Symbole, die positive und negative Zahlen zeigen: %+d und %d %n", 99, -99); // ouse systemoutprintf komplett ("Die großartigste Zahl ist: %03d %n", 7); // Systemoutprintf verwenden ("Der Effekt des TAB -Schlüssels ist: %8d %n", 7); // Systemoutprintf verwenden ("Der Effekt der Ganzzahlgruppierung ist: %, d %n", 9989997); // Space and Decimal Point Number Systememoutprintf ("Der Preis eines Buches ist: % 5f Yuan % n", 8); }Ausgangsergebnis
Die Verwendung des Formatparameters $: 99, ABC -Symbole, die positive und negative Zahlen anzeigen: +99 und -99 Die großartigste Zahl ist: 007 Die Wirkung des Registerkartenschlüssel
Datums- und Ereigniszeichenfolge Formatierung
Zeit und Datum werden häufig in der Programmschnittstelle angezeigt, aber das Format der Anzeige ist häufig unbefriedigend. Eine große Menge an Code ist erforderlich, um verschiedene Algorithmen durchzugehen, um das ideale Datum und das Zeitformat zu erhalten. Es gibt auch einen %TX -Konverter im String -Format, der nicht detailliert ist, es wird speziell zur Formatdaten und Zeiten verwendet. x im %TX -Konverter stellt einen zusätzlichen Konverter dar, der Datums- und Zeitformate verarbeitet, und ihre Kombinationen können Datum und Uhrzeit in mehreren Formaten formatieren.
Gemeinsame Formate für Datums- und Zeitkombinationen, wie in der Abbildung gezeigt.
| Konverter | veranschaulichen | Beispiel |
| C | Enthält alle Datums- und Zeitinformationen | Samstag 27. Oktober 14:21:20 CST 2007 |
| F | Format "Jahrmonatentag" | 2007-10-27 |
| D | Format "Monat/Tag/Jahr" | 27.10.07 |
| R | "HH: MM: SS PM" Format (12-Stunden-System) | 02:25:51 Uhr |
| T | "HH: MM: SS" -Format (24-Stunden-System) | 14:28:16 |
| R | "HH: MM" -Format (24-Stunden-System) | 14:28 |
Testfälle
public static void main (String [] args) {Datum date = new Date (); // C verwendet SystemUntprintf ("Alle Datums- und Uhrzeitinformationen: %TC %n", Datum); // F verwendet SystemUntPrintf ("Format des Jahresmonatstages: %tf %n", Datum); // D verwendet SystemUntprintf ("Monat/Tag/Jahr Format: %td %n", Datum); // R verwendet SystemutPrintf ("HH: MM: SS PM -Format (12 Zeitsystem): %TT %n", Datum); // T verwendet SystemUntprintf ("HH: MM: SS -Format (24 Zeitsystem): %tt %n", Datum); // r verwendet systemutprintf ("HH: MM -Format (24 Zeitformat): %tr", Datum); }Ausgangsergebnis
All date and time information: Monday September 10 10:43:36 CST 2012-month-day format: 2012-09-10 Month/Day/Year format: 09/10/12 HH:MM:SS PM format (12 o'clock): 10:43:36 Morning HH:MM:SS format (24 o'clock): 10:43:36 HH:MM format (24 o'clock): 10:43
Ein Konverter, der das Datumsformat definiert, kann dazu führen, dass das Datum eine neue Zeichenfolge über den angegebenen Konverter generiert. Diese Datumswandler sind in der Abbildung dargestellt.
public static void main (String [] args) {Datum date = new Date (); // Bs Verwendung, Monat Abkürzung ist String Str = StringFormat (Localeus, "englischer Monat Abkürzung: %TB", Datum); Systemoutprintln (STR); Systemoutprintf ("lokaler Monat Abkürzung: %TB %n", Datum); // Bs Gebrauch, Monat Voller Name Str = StringFormat (Localeus, "English Month Vollname: %tb", Datum); Systemoutprintln (STR); Systemoutprintf ("lokaler Monat Voller Name: %tb %n", Datum); // Die Verwendung von A, Woche wird als Str = StringFormat (Localeus, "English Week Abkreviation: %ta", Datum) abgekürzt; Systemoutprintln (STR); // Die Verwendung von A, der vollständige Namen von Week SystemOutprintf ("Abkürzung der lokalen Woche: %Ta %n", Datum); // Die Verwendung von C, zwei Ziffern Systemoutprintf ("Die ersten beiden Ziffern des Jahres (weniger als zwei Ziffern vor dem ersten): %TC %n", Datum); // Die Verwendung von Y, zwei Ziffern Systemoutprintf ("Die letzten beiden Ziffern des Jahres (weniger als zwei Ziffern vor dem ersten): %ty %n", Datum); // j, die Anzahl der Tage im Jahr systemUntprintf ("Tage im Jahr (dh der Tag des Jahres): %tj %n", Datum); // m, der Monat systemutprintf ("Monat von zwei Ziffern (weniger als zwei Ziffern vor 0): %tm %n", Datum); // D, der Tag (zwei Ziffern, nicht genug, um Nullen auszugleichen) systemutprintf ("Tag von zwei Ziffern (weniger als zwei Ziffern vor 0): %td %n", Datum); // e, der Tag (ein Ziffern vor 0) systemutprintf ("Tag von zwei Ziffern (weniger als zwei Ziffern vor 0): %td %n", Datum); // e, der Tag (ein Ziffern vor 0) systemutprintf ("Tag des Monats (nicht genug, um Nullen auszugleichen): %te", Datum); }Ausgangsergebnis
English Month Abkürzung: Sep Lokalmonat Abkürzung: September Englisch Monat Vollständiger Name: September Vollständiger Name: September Englische Woche Abkürzung: Mon Lokale Woche Abkürzung: Die ersten beiden Ziffern der Woche (vor weniger als zwei Ziffern addieren Sie 0): 20 Die letzten zwei Ziffern des Jahres (vor weniger als zwei Ziffern, addiert 0). als zwei Ziffern, fügen Sie 0 hinzu): 09 Der Tag der beiden Ziffern (vor weniger als zwei Ziffern, fügen Sie 0 hinzu): Oktobertag (vor weniger als zwei Ziffern, 0): 10
Im Vergleich zu Datumsformatkonvertern sind Zeitformatkonverter immer genauer. Es kann Zeit in Einheiten wie Stunden, Minuten, Sekunden und sogar Stunde Millisekunden formatieren. Der Konverter zum Formatieren der Zeitzeichenfolge ist in der Abbildung dargestellt.
| Konverter | veranschaulichen | Beispiel |
| H | 2-stellige Nummer 24 Stunden (unter 2 Ziffern wird 0 vor dem ersten hinzugefügt) | 15 |
| ICH | 2-stellige Zahl 12 Stunden (weniger als 2 Ziffern vor Addieren 0) | 03 |
| k | 2-stellige Nummer 24 Stunden Zeit (0 wird vorher nicht hinzugefügt) | 15 |
| l | 2-stellige Nummer 12 Stunden (0 wird vorher nicht hinzugefügt) | 3 |
| M | Minuten von 2 Ziffern (weniger als 2 Ziffern vor Adding 0) | 03 |
| S | Sekunden von 2 Ziffern (unter 2 Ziffern, 0 vorne hinzufügen) | 09 |
| L | Millisekunden von 3 Ziffern (weniger als 3 Ziffern vor Adding 0) | 015 |
| N | Die Anzahl der Millisekunden von 9 Ziffern (unter 9 Ziffern, fügen Sie 0 vor) | 562000000 |
| P | Morgen- oder Nachmittagsmarkierungen für Kleinbuchstaben | Medium: Nachmittag Englisch: PM |
| z | Versatz in Bezug auf die RFC822 -Zeitzone von GMT | +0800 |
| Z | Zeitzone Abkürzung Zeichenfolge | CST |
| S | 1970-1-1 00:00:00 Die Anzahl der Sekunden verging jetzt bis jetzt | 1193468128 |
| Q | 1970-1-1 00:00:00 Die Anzahl der Millisekunden vergangen jetzt | 1193468128984 |
Testcode
public static void main (String [] args) {Datum date = new Date (); // H verwendet SystemutPrintf ("2-stelliges 24-Stunden-Zeitsystem (vor 0, wenn weniger als 2 Ziffern): %Th %n", Datum); // I verwendet SystemUntprintf ("2-stelliges 12-Stunden-Zeitsystem (vor 0, wenn weniger als 2 Ziffern): %ti %n", Datum); // k verwendet systemutprintf ("2-stellig 24 Stunden Zeitsystem (vor 0, wenn nicht 0 Wenn nicht 0 Wenn nicht 0 Wenn nicht 0 Wenn nicht 0 Wenn nicht l"); // l verwendet SystemUntprintf ("2-stellig 12-Stunden-Zeitsystem (vor 0, wenn nicht 0 wenn nicht 0 Wenn nicht 0 Wenn nicht 0, nicht 0 Wenn nicht 0 Wenn nicht L). %tm %n ", Datum); // s verwendet systemUntprintf (" Sekunden von 2 Ziffern (vor 0, wenn weniger als 2 Ziffern): %ts %n ", Datum); // l verwendet systemutprintf (" Minuten von 3 Ziffern (vor 0, wenn weniger als 3 Ziffern): %tl %n ", Datum); // //). %tn %n ", Datum); // P verwendet String Str = StringFormat (Localeus", Morgen- oder Nachmittagsmarkierungen von Kleinbuchstaben (Englisch): %TP ", Datum); Systemoutprintln (STR); Systemoutprintf (" Morgen- oder Nachmittagsmarken von Kleinbuchstaben (Medium): %TP %N %N ", Date). %TZ %n ", Datum); // Zs Verwendung SystemOutprintf (" Zeitzone Abkürzung Zeichenfolge: %TZ %n ", Datum); // s Use systemoutprintf ("1970-1-1 00:00:00 Die Anzahl der bis heute übergingenden Sekunden: %ts %n", Datum); // qs Verwendung SystemOutprintf ("1970-1-1 00:00:00 Die Anzahl der Millisekunden, die bisher vergangen sind: %TQ %n", Datum); }Ausgangsergebnis
2-digit 24 hour hours (before 0 if less than 2 digits): 11 2-digit 12 hour hours (before 0 if less than 2 digits): 11 2-digit 24 hour hours (before 0 if less than 2 digits): 11 2-digit 12 hour hours (before 0 if less than 2 digits): 11 2-digit 12 hour hours (before 0 if less than 2 digits): 11 2-digit digit minutes (before 0 if less than 2 digits): 03 2-stellige Ziffernsekunden (vor 0, wenn weniger als 2 Ziffern): 52 3-stellig-stellige Millisekunden (vor 0, wenn weniger als 3 Ziffern): 773 9-stellige Millisekunden (vor 0 vor 0, wenn weniger als 9 Ziffern): 7730000000 Morgen- oder Nachmittagsmarkierungen für Kleinbuchstaben (englisch) (englisch) (englisch Zeitzone: +0800 Zeitzone Abkürzung Zeichenfolge: CST 1970-1-1 00:00:00 Die Anzahl der Sekunden, die an die Gegenwart übergeht: 1347246232 1970-1-1 00:00:00 Die Anzahl der Millisekunden an die Gegenwart übergeben: 1347246232773
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.