Formatter Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format.
[Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)]
public sealed class Formatter : Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.IO.ICloseable, Java.IO.IFlushable
[<Android.Runtime.Register("java/util/Formatter", DoNotGenerateAcw=true)>]
type Formatter = class
inherit Object
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IFlushable
- Vererbung
- Attribute
- Implementiert
Hinweise
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. Diese Klasse bietet Unterstützung für Layoutausrichtung und Ausrichtung, allgemeine Formate für numerische, Zeichenfolgen- und Datums-/Uhrzeitdaten und gebietsschemaspezifische Ausgabe. Allgemeine Java-Typen wie byte
, java.math.BigDecimal BigDecimal
, und Calendar
werden unterstützt. Eingeschränkte Formatierungsanpassung für beliebige Benutzertypen wird über die Formattable
Benutzeroberfläche bereitgestellt.
Formatierer sind für multithread-Zugriff nicht unbedingt sicher. Threadsicherheit ist optional und liegt in der Verantwortung von Benutzern von Methoden in dieser Klasse.
Der formatierte Druck für die Java-Sprache ist stark von Cs printf
inspiriert. Obwohl die Formatzeichenfolgen mit C vergleichbar sind, wurden einige Anpassungen vorgenommen, um die Java-Sprache aufzunehmen und einige seiner Features auszunutzen. Außerdem ist die Java-Formatierung strenger als C; Wenn eine Konvertierung beispielsweise nicht mit einer Kennzeichnung kompatibel ist, wird eine Ausnahme ausgelöst. In C werden nicht verwendbare Flags im Hintergrund ignoriert. Die Formatzeichenfolgen sollen somit für C-Programmierer erkennbar sein, aber nicht unbedingt vollständig kompatibel mit denen in C.
Beispiele für die erwartete Nutzung:
<Blockquote>
StringBuilder sb = new StringBuilder();
// Send all output to the Appendable object sb
Formatter formatter = new Formatter(sb, Locale.US);
// Explicit argument indices may be used to re-order output.
formatter.format("%4$2s %3$2s %2$2s %1$2s", "a", "b", "c", "d")
// -> " d c b a"
// Optional locale as the first argument can be used to get
// locale-specific formatting of numbers. The precision and width can be
// given to round and align the value.
formatter.format(Locale.FRANCE, "e = %+10.4f", Math.E);
// -> "e = +2,7183"
// The '(' numeric flag may be used to format negative numbers with
// parentheses rather than a minus sign. Group separators are
// automatically inserted.
formatter.format("Amount gained or lost since last statement: $ %(,.2f",
balanceDelta);
// -> "Amount gained or lost since last statement: $ (6,217.58)"
</blockquote>
Komfortmethoden für allgemeine Formatierungsanforderungen sind wie in den folgenden Aufrufen dargestellt:
<Blockquote>
// Writes a formatted string to System.out.
System.out.format("Local time: %tT", Calendar.getInstance());
// -> "Local time: 13:34:18"
// Writes formatted output to System.err.
System.err.printf("Unable to open file '%1$s': %2$s",
fileName, exception.getMessage());
// -> "Unable to open file 'food': No such file or directory"
</blockquote>
Wie C können sprintf(3)
Zeichenfolgen mithilfe der statischen Methode String#format(String,Object...) String.format
formatiert werden:
<Blockquote>
// Format a string containing a date.
import java.util.Calendar;
import java.util.GregorianCalendar;
import static java.util.Calendar.*;
Calendar c = new GregorianCalendar(1995, MAY, 23);
String s = String.format("Duke's Birthday: %1$tb %1$te, %1$tY", c);
// -> s == "Duke's Birthday: May 23, 1995"
</blockquote>
<h3>"org">Organization</h3>
Diese Spezifikation ist in zwei Abschnitte unterteilt. Im ersten Abschnitt , Zusammenfassung, werden die grundlegenden Formatierungskonzepte behandelt. Dieser Abschnitt richtet sich an Benutzer, die schnell beginnen möchten und mit dem formatierten Drucken in anderen Programmiersprachen vertraut sind. Der zweite Abschnitt, Details, behandelt die spezifischen Implementierungsdetails. Es ist für Benutzer vorgesehen, die eine genauere Spezifikation des Formatierungsverhaltens wünschen.
<h3>"summary">Summary</h3>
Dieser Abschnitt soll eine kurze Übersicht über Formatierungskonzepte bereitstellen. Genaue Verhaltensdetails finden Sie im Abschnitt "Details".
<h4>"syntax">Format String Syntax</h4>
Jede Methode, die formatierte Ausgabe erzeugt, erfordert eine Formatzeichenfolge und eine Argumentliste. Bei der Formatzeichenfolge handelt es sich um einen String
festen Text und einen oder mehrere eingebettete Formatbezeichner. Betrachten Sie das folgende Beispiel:
<Blockquote>
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
</blockquote>
Diese Formatzeichenfolge ist das erste Argument für die format
Methode. Sie enthält drei Formatbezeichner "%1$tm
", "%1$te
" und "%1$tY
", die angeben, wie die Argumente verarbeitet werden sollen und wo sie in den Text eingefügt werden sollen. Die restlichen Teile der Formatzeichenfolge sind fester Text, einschließlich "Dukes Birthday: "
aller anderen Leerzeichen oder Interpunktion.
Die Argumentliste besteht aus allen Argumenten, die nach der Formatzeichenfolge an die Methode übergeben werden. Im obigen Beispiel ist die Argumentliste von Größe 1 und besteht aus dem java.util.Calendar Calendar
Objekt c
.
<ul>
<li> Die Formatbezeichner für allgemeine, Zeichen und numerische Typen weisen die folgende Syntax auf:
<Blockquote>
%[argument_index$][flags][width][.precision]conversion
</blockquote>
Die optionale argument_index ist eine ganzzahlige Dezimalzahl, die die Position des Arguments in der Argumentliste angibt. Das erste Argument wird durch "1$
", die zweite durch "2$
" usw. referenziert.
Die optionalen Kennzeichnungen sind eine Reihe von Zeichen, die das Ausgabeformat ändern. Der Satz gültiger Flags hängt von der Konvertierung ab.
Die optionale Breite ist eine positive dezimale ganze Zahl, die die minimale Anzahl von Zeichen angibt, die in die Ausgabe geschrieben werden sollen.
Die optionale Genauigkeit ist eine nicht negative Dezimalzahl, die normalerweise verwendet wird, um die Anzahl der Zeichen einzuschränken. Das spezifische Verhalten hängt von der Konvertierung ab.
Die erforderliche Konvertierung ist ein Zeichen, das angibt, wie das Argument formatiert werden soll. Der Satz gültiger Konvertierungen für ein bestimmtes Argument hängt vom Datentyp des Arguments ab.
<li> Die Formatbezeichner für Typen, die verwendet werden, um Datums- und Uhrzeitangaben darzustellen, weisen die folgende Syntax auf:
<Blockquote>
%[argument_index$][flags][width]conversion
</blockquote>
Die optionalen argument_index, Flags und Breite werden wie oben definiert.
Die erforderliche Konvertierung ist eine zweiStellreihenfolge. Das erste Zeichen ist 't'
oder 'T'
. Das zweite Zeichen gibt das zu verwendende Format an. Diese Zeichen sind ähnlich, aber nicht vollständig mit denen identisch, die von GNU date
und POSIX strftime(3c)
definiert wurden.
<li> Die Formatbezeichner, die nicht argumentieren, weisen die folgende Syntax auf:
<Blockquote>
%[flags][width]conversion
</blockquote>
Die optionalen Flags und Breite werden wie oben definiert.
Die erforderliche Konvertierung ist ein Zeichen, das angibt, dass Inhalt in die Ausgabe eingefügt werden soll.
</ul>
<h4> Konvertierungen </h4>
Konvertierungen sind in die folgenden Kategorien unterteilt:
<ol>
<li><b>General</b> - kann auf jeden Argumenttyp angewendet werden
<li><b>Character</b> - kann auf grundlegende Typen angewendet werden, die Unicode-Zeichen darstellen: char
, , Character
byte
, Byte
, und short
Short
. Diese Konvertierung kann auch auf die Typen int
angewendet werden und Integer
wenn Character#isValidCodePoint
li><b>Numeric</b zurückgegeben true
<wird>
<ol>
<li>b Integral/b> - kann auf Java-Integraltypen angewendet werden: byte
, , Byte
, Short
short
, int
und Integer
, long
, Long
und java.math.BigInteger BigInteger
(aber nicht char
oder Character
)<><
<li><b>Gleitkomma/b> - kann auf Java-Gleitkommatypen< angewendet werden: float
, , Float
, , double
, Double
und java.math.BigDecimal BigDecimal
</ol>
<li><b>Date/Time</b> - kann auf Java-Typen angewendet werden, die ein Datum oder eine Uhrzeit codieren können: long
, , Long
, , Date
Calendar
und TemporalAccessor TemporalAccessor
<li><b>Percent</b> - erzeugt ein Literal '%'
('\u0025'
)
<li><b>Linientrennzeichen</b> - erzeugt das plattformspezifische Linientrennzeichen
</ol>
Bei kategorie "General", "Character", "Numberic", "Integral" und "Date/Time" (soweit nicht anders angegeben) lautet null
die Argumentargumente , dann lautet das Ergebnis "null
".
In der folgenden Tabelle sind die unterstützten Konvertierungen zusammengefasst. Konvertierungen, die durch ein Großbuchstaben (d. h. 'B'
, 'H'
, , 'S'
, 'C'
, 'X'
, , 'E'
'G'
, 'A'
, und 'T'
) gekennzeichnet sind, sind mit denen für die entsprechenden Kleinbuchstaben identisch, mit der Ausnahme, dass das Ergebnis gemäß den Regeln der vorherrschenden java.util.Locale Locale
Groß-/Kleinschreibung in Großbuchstaben konvertiert wird. Wenn kein explizites Gebietsschema angegeben ist, entweder beim Erstellen der Instanz oder als Parameter für den Methodenaufruf, wird dies java.util.Locale.Category#FORMAT default locale
verwendet.
<table class="striped"><caption style="display:none">genConv</caption><thead><tr><th scope="col" style="vertical-align:bottom"> Conversion <th scope="col" style="vertical-align:bottom"> Argument Category <th scope="col" style="vertical-align:bottom"> Description </thead<>tbody<>tr><th scope="row" style="vertical-align:top"'b'
>, 'B'
<td style="vertical-align:top" > general <td> If the argument arg is null
, the result is "false
". Wenn arg ein boolean
oder Boolean
ist, ist das Ergebnis die Zeichenfolge, die von String#valueOf(boolean) String.valueOf(arg)
. Andernfalls lautet das Ergebnis "true".
<tr><th scope="row" style="vertical-align:top"'h'
>,<'H'
td style="vertical-align:top"> general <td> Das Ergebnis wird durch Aufrufen Integer.toHexString(arg.hashCode())
abgerufen.
<tr><th scope="row" style="vertical-align:top"'s'
>,<'S'
td style="vertical-align:top"> general <td> If arg implements Formattable
, then Formattable#formatTo arg.formatTo
is invoked. Andernfalls wird das Ergebnis durch Aufrufen arg.toString()
abgerufen.
<tr><th scope="row" style="vertical-align:top">'c'
, 'C'
<td style="vertical-align:top"> character <td> The result is a Unicode character
<tr><th scope="row" style="vertical-align:top"><'d'
td style="vertical-align:top"> integral <td> The result is formatted as a decimal integer
<tr><th scope="row" style="vertical-align:top"><'o'
td style="vertical-align:top"> integral <td> The result is formatted as an octal integer
<tr><th scope="row" style="vertical-align:top">'x'
, 'X'
<td style="vertical-align:top"> integral <td> The result is formatted as a hexadecimal integer
<tr><th scope="row" style="vertical-align:top">'e'
, 'E'
<td style="vertical-align:top"> floating point <td> The result is formatted as a decimal number in computerized scientific notation
<tr><th scope="row" style="vertical-align:top"><'f'
td style="vertical-align:top"> floating point <td> The result is formatted as a decimal number
<tr><th scope="row" style="vertical-align:top">'g'
, 'G'
<td style="vertical-align:top"> floating point <td> The result is formatted using computerized scientific notation or decimal format, depending on the precision and the value after rounding.
<tr><th scope="row" style="vertical-align:top">'a'
, 'A'
<td style="vertical-align:top"> floating point <td> The result is formatted as a hexadecimal floating-point number with a significand and an exponent. Diese Konvertierung wird <für>den BigDecimal
Typ nicht>< unterstützt, obwohl sich letztere in der Gleitkommaargumentkategorie befinden.
<tr><th scope="row" style="vertical-align:top">'t'
, 'T'
<td style="vertical-align:top"> date/time <td> Prefix for date and time conversion characters. Siehe Datums-/Uhrzeitkonvertierungen.
<tr><th scope="row" style="vertical-align:top"'%'
><td style="vertical-align:top"> percent <td> The result is a literal '%'
()'\u0025'
<tr><th scope="row" style="vertical-align:top"><'n'
td style="vertical-align:top">line separator <td> The result is the platform-specific line separator
</tbody></table>
Alle Zeichen, die nicht explizit als Konvertierungen definiert sind, sind illegal und sind für zukünftige Erweiterungen reserviert.
<h4>"dt">Date/Time Conversions</h4>
Die folgenden Suffixzeichen für Datums- und Uhrzeitkonvertierung werden für die 't'
und 'T'
Konvertierungen definiert. Die Typen sind ähnlich, aber nicht vollständig identisch mit denen, die von GNU date
und POSIX strftime(3c)
definiert wurden. Zusätzliche Konvertierungstypen werden für den Zugriff auf javaspezifische Funktionen bereitgestellt (z. B. 'L'
für Millisekunden innerhalb der zweiten).
Die folgenden Konvertierungszeichen werden für Formatierungszeiten verwendet:
<table class="striped"><caption style="display:none">time</caption><tbody><tr><th scope="row" style="vertical-align:top"<'H'
>td> Hour of the day for the 24-hour clock, formatiert as two digits with a leading zero as necessary, d. h. 00 - 23
. .
<tr><th scope="row" style="vertical-align:top"><'I'
td> Hour for the 12-hour clock, formatiert as two digits with a leading zero as necessary, dh . 01 - 12
<tr><th scope="row" style="vertical-align:top"><'k'
td> Hour of the day for the 24-hour clock, d.h. . 0 - 23
<tr><th scope="row" style="vertical-align:top"><'l'
td> Hour for the 12-hour clock, d.h. . 1 - 12
<tr><th scope="row" style="vertical-align:top"><'M'
td> Minute innerhalb der Stunde, die als zwei Ziffern mit einer führenden Null bei Bedarf formatiert ist, d. h. . 00 - 59
<tr><th scope="row" style="vertical-align:top"'S'
<>td Seconds within the minute, formatiert> as two digits with a leading zero as required, d.h. 00 - 60
("60
" is a special value required to support leap seconds).
<tr><th scope="row" style="vertical-align:top"><'L'
td Millisecond> within the second formatted as three digits with leading zeros as necessary, d. h. 000 - 999
. .
<tr><th scope="row" style="vertical-align:top"><'N'
td Nanosecond> within the second, formatiert as nine digits with leading zeros as necessary, dh . 000000000 - 999999999
<tr><th scope="row" style="vertical-align:top"><'p'
td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morning or afternoon marker in lower case, z.B.""am
oder "pm
". Die Verwendung des Konvertierungspräfixes 'T'
erzwingt diese Ausgabe in Großbuchstaben.
<tr><th scope="row" style="vertical-align:top">'z'
<td>RFC 822 style numeric time zone offset from GMT, z. B. . -0800
Dieser Wert wird bei Bedarf für Sommerzeit angepasst. Für long
, Long
und Date
die verwendete Zeitzone ist die Standardzeitzone "TimeZone#getDefault()" für diese Instanz des virtuellen Java-Computers.
<tr><th scope="row" style="vertical-align:top"<>'Z'
td> A string representing the abkürzung for the time zone. Dieser Wert wird bei Bedarf für Sommerzeit angepasst. Für long
, Long
und Date
die verwendete Zeitzone ist die Standardzeitzone "TimeZone#getDefault()" für diese Instanz des virtuellen Java-Computers. Das Gebietsschema des Formatierers ersetzt das Gebietsschema des Arguments (sofern vorhanden).
<tr><th scope="row" style="vertical-align:top"'s'
><td> Seconds since the beginning of the epoch starting at 1 January 1970 00:00:00
UTC, dh Long.MIN_VALUE/1000
to .Long.MAX_VALUE/1000
<tr><th scope="row" style="vertical-align:top"<'Q'
>td> Milliseconds seit Beginn der Epoche ab dem 1. Januar 1970 00:00:00
UTC, d. h. Long.MIN_VALUE
bis .Long.MAX_VALUE
</tbody></table>
Die folgenden Konvertierungszeichen werden zum Formatieren von Datumsangaben verwendet:
<table class="striped"><caption style="display:none">date</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'B'
<>td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, z. B. "January"
, . "February"
<tr><th scope="row" style="vertical-align:top"'b'
<>td> Locale-specific java.text.DateFormatSymbols#getShortMonths abgekürzter Monatsname, z. B. "Jan"
, . "Feb"
<tr><th scope="row" style="vertical-align:top"><'h'
td> Same as .'b'
<tr><th scope="row" style="vertical-align:top"'A'
<>td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day of the week, z. B. "Monday"
<"Sunday"
tr><th scope="row" style="vertical-align:top"'a'
><td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, z.B. "Sun"
, "Mon"
<tr><th scope="row" style="vertical-align:top"'C'
<>td Vierstelliges Jahr dividiert durch 100
>, formatiert als zwei Ziffern mit vorangestellter Null nach Bedarf, d. h. tr><th scope="row" style="vertical-align:top"<'Y'
>td> Year, formatiert als mindestens vier Ziffern mit führenden Nullen nach Bedarf, z. B.<00 - 99
0092
gleich 92
CE für den gregorianischen Kalender.
<tr><th scope="row" style="vertical-align:top"><'y'
td Last two digits of the year, formatiert> with leading zeros as necessary, d. h. 00 - 99
. .
<tr><th scope="row" style="vertical-align:top"><'j'
td Day of year, formatiert> als drei Ziffern mit führenden Nullen nach Bedarf, z. B. 001 - 366
für den gregorianischen Kalender.
<tr><th scope="row" style="vertical-align:top"><'m'
td> Month, formatiert als zwei Ziffern mit führenden Nullen nach Bedarf, d. h. 01 - 13
. .
<tr><th scope="row" style="vertical-align:top">'d'
<td Day of month, formatiert> als zwei Ziffern mit führenden Nullen nach Bedarf, d. h. tr><th scope="row" style="vertical-align:top"><'e'
td> Day of month, formatiert als zwei Ziffern, d. 01 - 31
<h. . 1 - 31
</tbody></table>
Die folgenden Konvertierungszeichen werden zum Formatieren allgemeiner Datums-/Uhrzeitkompositionen verwendet.
<table class="striped"><caption style="display:none">composites</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'R'
<>td Time formatted> for the 24-hour clock as "%tH:%tM"
<tr><th scope="row" style="vertical-align:top"'T'
<>td> Time formatted for the 24-hour clock as ."%tH:%tM:%tS"
<tr><th scope="row" style="vertical-align:top"><'r'
td> Time formatted for the 12-hour clock as ."%tI:%tM:%tS %Tp"
Die Position der Markierung für den Morgen oder Nachmittag ('%Tp'
) kann gebietsschemaabhängig sein.
<tr><th scope="row" style="vertical-align:top"><'D'
td> Date formatted as ."%tm/%td/%ty"
<tr><th scope="row" style="vertical-align:top">'F'
<td>ISO 8601 complete date formatted as ."%tY-%tm-%td"
<tr><th scope="row" style="vertical-align:top"'c'
<>td> Date and time formatted as "%ta %tb %td %tT %tZ %tY"
, z. B. "Sun Jul 20 16:17:00 EDT 1969"
. .
</tbody></table>
Alle Zeichen, die nicht explizit als Datums-/Uhrzeitkonvertierungssuffixe definiert sind, sind unzulässig und sind für zukünftige Erweiterungen reserviert.
<h4> Flags </h4>
In der folgenden Tabelle sind die unterstützten Flags zusammengefasst. y bedeutet, dass das Kennzeichen für die angegebenen Argumenttypen unterstützt wird.
<table class="striped"><caption style="display:none">genConv</caption><thead><tr><th scope="col" style="vertical-align:bottom"> Flag <th scope="col" style="vertical-align:bottom"> General <th scope ="col" style="vertical-align:bottom"> Character <th scope="col" style="vertical-align:bottom"> Integral <th scope="col" style="vertical-align:bottom"> Floating Point <th scope="col" style=" vertical-align:bottom"> Date/Time <th scope="col" style="vertical-align:bottom"> Description </thead><tbody><tr><th scope="row"> '-' <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td> Das Ergebnis wird linksbündig ausgerichtet.
<tr><th scope="row"> '#' <td style="text-align:center; vertical-align:top"> y<sup>1</sup><td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>3</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis sollte ein konvertierungsabhängiges alternatives Formular verwenden.
<tr><th scope="row"> '+' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup><td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis enthält immer ein Zeichen.
<tr><th scope="row"> ' ' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup<>td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> The result will include a leading space for positive values
<tr><th scope="row"> '0' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> y <td style="text-align:center; vertical-align:top"> - <td> The result will be zero-padded
<tr><th scope="row"> ',' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>2</sup><td style="text-align:center; vertical-align:center; vertical-align:top"> y<sup>5</sup<>td style="text-align:center; vertical-align:top"> - <td> Das Ergebnis enthält gebietsschemaspezifische java.text.DecimalFormatSymbols#getGroupingSeparator-Gruppierungstrennzeichen<tr><th scope="row"> '(' <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> - <td style="text-align:center; vertical-align:top"> y<sup>4</sup<>td style="text-align:center; vertical-align:top"> y<sup>5</sup><td style="text-align:center"> - <td> Das Ergebnis schließt negative Zahlen in Klammern ein.
</tbody></table>
<sup>1/sup> Hängt von der Definition von Formattable
<.
<sup 2</sup>> Nur für 'd'
Konvertierung.
<sup>3</sup> Für 'o'
, 'x'
und 'X'
Konvertierungen nur.
<sup>4/sup> Für 'd'
, 'o'
, 'x'
und 'X'
Konvertierungen auf , , , und angewendet auf byte
java.math.BigInteger BigInteger
'd'
, Byte
, , Short
short
und int
, long
und Integer
Long
.<
<sup>5</sup> Für 'e'
, , 'E'
'f'
, 'g'
und 'G'
Konvertierungen nur.
Alle Zeichen, die nicht explizit als Kennzeichnungen definiert sind, sind illegal und sind für zukünftige Erweiterungen reserviert.
<h4> Breite </h4>
Die Breite ist die Mindestanzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Für die Zeilentrennzeichenumwandlung gilt die Breite nicht; wenn dies angegeben wird, wird eine Ausnahme ausgelöst.
<h4> Precision </h4>
Bei allgemeinen Argumenttypen ist die Genauigkeit die maximale Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen.
Für die Gleitkommakonvertierungen 'a'
, , 'A'
, 'e'
'E'
und 'f'
die Genauigkeit ist die Anzahl der Ziffern nach dem Radixpunkt. Wenn die Konvertierung oder 'g'
'G'
, dann ist die Genauigkeit die Gesamtanzahl der Ziffern in der resultierenden Größe nach dem Runden.
Für Zeichen-, Integral- und Datums-/Uhrzeitargumenttypen und die Prozent- und Linientrennzeichenumwandlungen ist die Genauigkeit nicht anwendbar; Wenn eine Genauigkeit bereitgestellt wird, wird eine Ausnahme ausgelöst.
<h4> Argument Index </h4>
Der Argumentindex ist eine dezimale ganze Zahl, die die Position des Arguments in der Argumentliste angibt. Das erste Argument wird durch "1$
", die zweite durch "2$
" usw. referenziert.
Eine weitere Möglichkeit zum Verweisen auf Argumente nach Position ist die Verwendung des '<'
('\u003c'
) Flags, das bewirkt, dass das Argument für den vorherigen Formatbezeichner erneut verwendet wird. Die folgenden beiden Anweisungen würden beispielsweise identische Zeichenfolgen erzeugen:
<Blockquote>
Calendar c = ...;
String s1 = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
String s2 = String.format("Duke's Birthday: %1$tm %<te,%<tY", c);
</blockquote>
<hr><h3>"detail">Details</h3>
Dieser Abschnitt soll Verhaltensdetails für die Formatierung bereitstellen, einschließlich Bedingungen und Ausnahmen, unterstützte Datentypen, Lokalisierung und Interaktionen zwischen Flags, Konvertierungen und Datentypen. Eine Übersicht über Formatierungskonzepte finden Sie in der Zusammenfassung
Alle Zeichen, die nicht explizit als Konvertierungen, Datums-/Uhrzeitkonvertierungssuffixe oder Flags definiert sind, sind unzulässig und sind für zukünftige Erweiterungen reserviert. Die Verwendung eines solchen Zeichens in einer Formatzeichenfolge führt dazu, dass eine UnknownFormatConversionException
oder UnknownFormatFlagsException
mehrere Zeichenfolgen ausgelöst werden.
Wenn der Formatbezeichner eine Breite oder Genauigkeit mit einem ungültigen Wert enthält oder andernfalls nicht unterstützt wird, wird ein IllegalFormatWidthException
oder IllegalFormatPrecisionException
beides ausgelöst.
Wenn ein Formatbezeichner ein Konvertierungszeichen enthält, das für das entsprechende Argument nicht anwendbar ist, wird ein IllegalFormatConversionException
Fehler ausgelöst.
Alle angegebenen Ausnahmen können von einer der format
Methoden Formatter
sowie von beliebigen format
Komfortmethoden wie String#format(String,Object...) String.format
z. B. und java.io.PrintStream#printf(String,Object...) PrintStream.printf
.
Bei kategorie "General", "Character", "Numberic", "Integral" und "Date/Time" (soweit nicht anders angegeben) lautet null
die Argumentargumente , dann lautet das Ergebnis "null
".
Konvertierungen, die durch ein Großbuchstaben (d. h. 'B'
, 'H'
, , 'S'
, 'C'
, 'X'
, , 'E'
'G'
, 'A'
, und 'T'
) gekennzeichnet sind, sind mit denen für die entsprechenden Kleinbuchstaben identisch, mit der Ausnahme, dass das Ergebnis gemäß den Regeln der vorherrschenden java.util.Locale Locale
Groß-/Kleinschreibung in Großbuchstaben konvertiert wird. Wenn kein explizites Gebietsschema angegeben ist, entweder beim Erstellen der Instanz oder als Parameter für den Methodenaufruf, wird dies java.util.Locale.Category#FORMAT default locale
verwendet.
<h4>"dgen">General</h4>
Die folgenden allgemeinen Konvertierungen können auf jeden Argumenttyp angewendet werden:
<table class="striped"><caption style="display:none">dgConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"<'b'
>td style="vertical-align:top"><'\u0062'
td> Produziert entweder "true
" oder "false
" wie von .Boolean#toString(boolean)
Wenn das Argument lautet null
, lautet das Ergebnis "false
". Wenn es sich bei dem Argument um ein boolean
oder Boolean
, dann ist das Ergebnis die von String#valueOf(boolean) String.valueOf()
. Andernfalls lautet das Ergebnis "true
".
Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'B'
><td style="vertical-align:top"'\u0042'
<>td> The upper-case variant of .'b'
<tr><th scope="row" style="vertical-align:top">'h'
<td style="vertical-align:top"'\u0068'
><td> Erzeugt eine Zeichenfolge, die den Hashcodewert des Objekts darstellt.
Das Ergebnis wird durch Aufrufen Integer.toHexString(arg.hashCode())
abgerufen.
Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'H'
><td style="vertical-align:top"'\u0048'
<>td> The upper-case variant of .'h'
<tr><th scope="row" style="vertical-align:top">'s'
<td style="vertical-align:top"'\u0073'
><td> Erzeugt eine Zeichenfolge.
Wenn das Argument implementiert Formattable
wird, wird seine Formattable#formatTo formatTo
Methode aufgerufen. Andernfalls wird das Ergebnis durch Aufrufen der Methode des toString()
Arguments abgerufen.
Wenn die '#'
Kennzeichnung angegeben ist und das Argument kein Formattable
Argument ist, wird ein FormatFlagsConversionMismatchException
Fehler ausgelöst.
<tr><th scope="row" style="vertical-align:top"'S'
><td style="vertical-align:top"'\u0053'
<>td> The upper-case variant of .'s'
</tbody></table>
Die folgenden "dFlags"->Flags gelten für allgemeine Konvertierungen:
<table class="striped"><caption style="display:none">dFlags</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'-'
<td style="vertical-align:top"'\u002d'
><td> Left justifis the output. Leerzeichen ('\u0020'
) werden am Ende des konvertierten Werts nach Bedarf hinzugefügt, um die Mindestbreite des Felds auszufüllen. Wenn die Breite nicht angegeben wird, wird eine MissingFormatWidthException
ausgelöst. Wenn diese Kennzeichnung nicht angegeben wird, ist die Ausgabe rechtsbündig.
<tr><th scope="row" style="vertical-align:top">'#'
<td style="vertical-align:top"'\u0023'
><td> Erfordert die Ausgabe ein alternatives Formular. Die Definition des Formulars wird durch die Konvertierung angegeben.
</tbody></table>
Die Breite "genWidth"> ist die Mindestanzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Wenn die Länge des konvertierten Werts kleiner als die Breite ist, wird die Ausgabe bis zur Gesamtanzahl der Zeichen der Breite um ' '
('\u0020'
) aufgefüllt. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn die '-'
Kennzeichnung angegeben wird, befindet sich der Abstand auf der rechten Seite. Wenn die Breite nicht angegeben ist, gibt es kein Minimum.
Die Genauigkeit ist die maximale Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Die Genauigkeit wird vor der Breite angewendet, daher wird die Ausgabe auf precision
Zeichen abgeschnitten, auch wenn die Breite größer als die Genauigkeit ist. Wenn die Genauigkeit nicht angegeben wird, gibt es keine explizite Beschränkung für die Anzahl von Zeichen.
<h4>"dchar">Character</h4>
Diese Konvertierung kann auf und Character
angewendet char
werden. Es kann auch auf die Typen byte
, Byte
, , short
und Short
, und , int
angewendet werden, und Integer
wenn Character#isValidCodePoint
zurückgegeben true
. Wenn sie zurückgegeben false
wird, wird eine IllegalFormatCodePointException
ausgelöst.
<table class="striped"><caption style="display:none">charConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'c'
<td style="vertical-align:top"'\u0063'
><td> Formatiert das Argument als Unicode-Zeichen, wie in unicode-Zeichendarstellung beschrieben. Dies kann mehr als eine 16-Bit-Version char
sein, wenn das Argument ein ergänzendes Zeichen darstellt.
Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'C'
><td style="vertical-align:top"'\u0043'
<>td> The upper-case variant of .'c'
</tbody></table>
Das kennzeichen, das '-'
für allgemeine Konvertierungen definiert ist, gilt. Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
Die Breite wird für allgemeine Konvertierungen definiert.
Die Genauigkeit ist nicht anwendbar. Wenn die Genauigkeit angegeben wird, wird eine IllegalFormatPrecisionException
ausgelöst.
<h4>"dnum">Numeric</h4>
Numerische Konvertierungen sind in die folgenden Kategorien unterteilt:
<ol>
<li>b Byte, Short, Integer, and Long</b><li><b>BigInteger</b li><b>><Float and Double</b><li><b>BigDecimal</b></ol><>
Numerische Typen werden gemäß dem folgenden Algorithmus formatiert:
<b>"L10nAlgorithm"> Number Localization Algorithm</b>
Nachdem Ziffern für den ganzzahligen Teil, den Bruchteil und den Exponenten (entsprechend dem Datentyp) abgerufen wurden, wird die folgende Transformation angewendet:
<ol>
<li> Jedes Ziffernzeichen in der Zeichenfolge wird durch eine gebietsschemaspezifische Ziffer ersetzt, die relativ zum java.text.DecimalFormatSymbols#getZeroDigit() nullstelligenz; d - '0'
+ z.
<li> Wenn ein Dezimaltrennzeichen vorhanden ist, wird ein gebietsschemaspezifisches java.text.DecimalFormatSymbols#getDecimalSeparator-Dezimaltrennzeichen ersetzt.
<li> If the ','
('\u002c'
) "L10nGroup">flag is given, then the locale-specific java.text.DecimalFormatSymbols#getGroupingSeparator grouping separator is insert by scanning the integer part of the string from least significant to most significants and inserting a separator at intervall defined by the locale's java.text.DecimalFormat#getGroupingSize() grouping size.
<li> Wenn das '0'
Flag angegeben wird, werden die gebietsschemaspezifischen java.text.DecimalFormatSymbols#getZeroDigit() Nullziffern nach dem Zeichenzeichen eingefügt, falls vorhanden, und vor der ersten nicht nullstelligen Ziffer, bis die Länge der Zeichenfolge der angeforderten Feldbreite entspricht.
<li> Wenn der Wert negativ ist und das '('
Flag angegeben wird, wird ein '('
('\u0028'
) vorangestellt und ein ')'
('\u0029'
) angefügt.
<li> Wenn der Wert negativ (oder Gleitkomma-negative Null) ist und '('
keine Kennzeichnung angegeben wird, wird ein '-'
('\u002d'
) vorangestellt.
<li> Wenn das '+'
Flag angegeben wird und der Wert positiv oder null (oder gleitkomma positive Null) ist, wird ein '+'
('\u002b'
) vorangestellt.
</ol>
Wenn der Wert NaN oder positive Unendlichkeit ist, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben. Wenn der Wert negativ unendlich ist, lautet die Ausgabe "(Infinity)", wenn das '('
Flag angegeben wird, andernfalls lautet die Ausgabe "-Infinity". Diese Werte werden nicht lokalisiert.
"dnint"><b> Byte, Short, Integer und Long </b>
Die folgenden Konvertierungen können auf byte
, , Byte
, short
, Short
, int
und Integer
, und , long
und Long
.
<table class="striped"><caption style="display:none">IntConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'d'
<td style="vertical-align:top"'\u0064'
><td> Formatiert das Argument als Dezimalzahl. Der Lokalisierungsalgorithmus wird angewendet.
Wenn das '0'
Flag angegeben wird und der Wert negativ ist, tritt der Nullabstand nach dem Vorzeichen auf.
Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top">'o'
<td style="vertical-align:top"'\u006f'
><td> Formatiert das Argument als ganze Zahl in basis acht. Es wird keine Lokalisierung angewendet.
Wenn x negativ ist, ist das Ergebnis ein nicht signierter Wert, der durch Hinzufügen von 2<sup>n</sup> zu dem Wert generiert wird, wobei n
die Anzahl der Bits im Typ gemäß der Rückgabe durch das statische SIZE
Feld im Byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer oder Long#SIZE Long Klassen entsprechend zurückgegeben wird.
Wenn das '#'
Kennzeichen angegeben wird, beginnt die Ausgabe immer mit dem Radix-Indikator '0'
.
Wenn das '0'
Kennzeichen angegeben wird, wird die Ausgabe mit führenden Nullen bis zur Feldbreite nach einem Hinweis auf das Vorzeichen aufgefüllt.
Wenn '('
, , '+'
, ' oder ','
Flags werden dann FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top">'x'
<td style="vertical-align:top"'\u0078'
><td> Formatiert das Argument als ganze Zahl in Basissechzehn. Es wird keine Lokalisierung angewendet.
Wenn x negativ ist, ist das Ergebnis ein nicht signierter Wert, der durch Hinzufügen von 2<sup>n</sup> zu dem Wert generiert wird, wobei n
die Anzahl der Bits im Typ gemäß der Rückgabe durch das statische SIZE
Feld im Byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer oder Long#SIZE Long Klassen entsprechend zurückgegeben wird.
Wenn das '#'
Kennzeichen angegeben wird, beginnt die Ausgabe immer mit dem Radix-Indikator "0x"
.
Wenn das '0'
Kennzeichen angegeben wird, wird die Ausgabe auf die Feldbreite mit führenden Nullen nach dem Radix-Indikator oder -Zeichen (sofern vorhanden) aufgefüllt.
Wenn '('
, ' '
, , '+'
oder ','
Flags angegeben werden, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'X'
><td style="vertical-align:top"'\u0058'
<>td> The upper-case variant of .'x'
Die gesamte Zeichenfolge, die die Zahl darstellt, wird in "String#toUpperCase" in Großbuchstaben konvertiert, einschließlich der 'x'
(falls vorhanden) und aller hexadezimalen'f'
- 'a'
Ziffern ().'\u0061'
- '\u0066'
</tbody></table>
Wenn die Konvertierung 'o'
, 'x'
oder 'X'
und sowohl die '#'
Flags als auch die '0'
Flags angegeben sind, enthält das Ergebnis den Radixindikator ('0'
für oktale und "0x"
hexadezimale "0X"
), einige Anzahl von Nullen (basierend auf der Breite) und den Wert.
Wenn die '-'
Kennzeichnung nicht angegeben wird, tritt der Abstand vor dem Zeichen auf.
Die folgenden "intFlags"->Flags gelten für numerische integrale Konvertierungen:
<table class="striped"><caption style="display:none">intFlags</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'+'
<td style="vertical-align:top"'\u002b'
><td> Requires the output to include a positive sign for all positive numbers. Wenn dieses Kennzeichen nicht angegeben wird, enthalten nur negative Werte ein Zeichen.
Wenn sowohl die '+'
Kennzeichnungen als ' '
auch die Kennzeichnungen angegeben werden, wird eine IllegalFormatFlagsException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"' '
><td style="vertical-align:top"'\u0020'
<>td> Requires the output to include a single extra space ('\u0020'
) for non-negative values.
Wenn sowohl die '+'
Kennzeichnungen als ' '
auch die Kennzeichnungen angegeben werden, wird eine IllegalFormatFlagsException
ausgelöst.
<tr><th scope="row" style="vertical-align:top">'0'
<td style="vertical-align:top"'\u0030'
><td> Requires the output to be padded with leading java.text.DecimalFormatSymbols#getZeroDigit zeros to the minimum field width following any sign or radix indicator except when converting NaN or infinity. Wenn die Breite nicht angegeben wird, wird eine MissingFormatWidthException
ausgelöst.
Wenn sowohl die '-'
Kennzeichnungen als '0'
auch die Kennzeichnungen angegeben werden, wird eine IllegalFormatFlagsException
ausgelöst.
<tr><th scope="row" style="vertical-align:top">','
<td style="vertical-align:top"'\u002c'
><td> Erfordert die Ausgabe, um die gebietsschemaspezifischen java.text.DecimalFormatSymbols#getGroupingSeparator-Gruppentrennzeichen einzuschließen, wie im Abschnitt "Gruppe" des Lokalisierungsalgorithmus beschrieben.
<tr><th scope="row" style="vertical-align:top"'('
<>td style="vertical-align:top"<'\u0028'
>td> Requires the output to prepend a '('
() and append a ')'
('\u0028'
'\u0029'
) to negative values.
</tbody></table>
Wenn keine "intdFlags"->Flags angegeben werden, lautet die Standardformatierung wie folgt:
<ul>
<li> Die Ausgabe ist rechtsbündig innerhalb der width
<li> Negative Zahlen beginnen mit einem '-'
('\u002d'
)
<Li> Positive Zahlen und Null enthalten kein Vorzeichen oder zusätzliche führende Leerzeichen.
<li> Keine Gruppierungstrennzeichen sind enthalten
</ul>
Die Breite "intWidth"> ist die Mindestanzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Dazu gehören alle Zeichen, Ziffern, Gruppierungstrennzeichen, Radix-Indikator und Klammern. Wenn die Länge des konvertierten Werts kleiner als die Breite ist, wird die Ausgabe durch Leerzeichen ('\u0020'
) aufgefüllt, bis die Gesamtzahl der Zeichen der Breite entspricht. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn '-'
die Kennzeichnung angegeben wird, befindet sich der Abstand auf der rechten Seite. Wenn keine Breite angegeben ist, gibt es kein Minimum.
Die Genauigkeit ist nicht anwendbar. Wenn die Genauigkeit angegeben wird, wird eine IllegalFormatPrecisionException
ausgelöst.
"dnbint"><b> BigInteger </b>
Die folgenden Konvertierungen können auf java.math.BigInteger
.
<table class="striped"><caption style="display:none">bIntConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'d'
<td style="vertical-align:top"'\u0064'
><td> Requires the output to be formatted as a decimal integer. Der Lokalisierungsalgorithmus wird angewendet.
Wenn die '#'
Kennzeichnung angegeben FormatFlagsConversionMismatchException
wird, wird diese ausgelöst.
<tr><th scope="row" style="vertical-align:top">'o'
<td style="vertical-align:top"'\u006f'
><td> Requires the output to be formatted as an integer in base eight. Es wird keine Lokalisierung angewendet.
Wenn x negativ ist, wird das Ergebnis ein signierter Wert sein, der mit '-'
('\u002d'
) beginnt. Die signierte Ausgabe ist für diesen Typ zulässig, da im Gegensatz zu den Grundtyptypen kein nicht signiertes Äquivalent erstellt werden kann, ohne dass eine explizite Datentypgröße vorausgesetzt wird.
Wenn x positiv oder null ist und die '+'
Kennzeichnung angegeben wird, beginnt das Ergebnis mit '+'
('\u002b'
).
Wenn das '#'
Flag angegeben wird, beginnt die Ausgabe immer mit '0'
dem Präfix.
Wenn das '0'
Kennzeichen angegeben wird, wird die Ausgabe mit führenden Nullen bis zur Feldbreite nach einem Hinweis auf das Vorzeichen aufgefüllt.
Wenn die ','
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top">'x'
<td style="vertical-align:top"'\u0078'
><td> Requires the output to be formatted as an integer in base sixteen. Es wird keine Lokalisierung angewendet.
Wenn x negativ ist, wird das Ergebnis ein signierter Wert sein, der mit '-'
('\u002d'
) beginnt. Die signierte Ausgabe ist für diesen Typ zulässig, da im Gegensatz zu den Grundtyptypen kein nicht signiertes Äquivalent erstellt werden kann, ohne dass eine explizite Datentypgröße vorausgesetzt wird.
Wenn x positiv oder null ist und die '+'
Kennzeichnung angegeben wird, beginnt das Ergebnis mit '+'
('\u002b'
).
Wenn das '#'
Kennzeichen angegeben wird, beginnt die Ausgabe immer mit dem Radix-Indikator "0x"
.
Wenn das '0'
Kennzeichen angegeben wird, wird die Ausgabe auf die Feldbreite mit führenden Nullen nach dem Radix-Indikator oder -Zeichen (sofern vorhanden) aufgefüllt.
Wenn die ','
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'X'
><td style="vertical-align:top"'\u0058'
<>td> The upper-case variant of .'x'
Die gesamte Zeichenfolge, die die Zahl darstellt, wird in "String#toUpperCase" in Großbuchstaben konvertiert, einschließlich der 'x'
(falls vorhanden) und aller hexadezimalen'f'
- 'a'
Ziffern ().'\u0061'
- '\u0066'
</tbody></table>
Wenn die Konvertierung 'o'
, 'x'
oder 'X'
und sowohl die '#'
Flags als auch die '0'
Flags angegeben sind, enthält das Ergebnis den Basisindikator ('0'
für oktale und "0x"
hexadezimale "0X"
), einige Anzahl von Nullen (basierend auf der Breite) und den Wert.
Wenn das '0'
Flag angegeben wird und der Wert negativ ist, tritt der Nullabstand nach dem Vorzeichen auf.
Wenn die '-'
Kennzeichnung nicht angegeben wird, tritt der Abstand vor dem Zeichen auf.
Alle Flags, die für Byte, Short, Integer und Long definiert sind, gelten. Das Standardverhalten, wenn keine Kennzeichnungen angegeben werden, ist identisch mit Byte, Short, Integer und Long.
Die Spezifikation der Breite entspricht der Definition für Byte, Short, Integer und Long.
Die Genauigkeit ist nicht anwendbar. Wenn die Genauigkeit angegeben wird, wird eine IllegalFormatPrecisionException
ausgelöst.
"dndec"><b> Float und Double</b>
Die folgenden Konvertierungen können auf float
, Float
und double
Double
.
<table class="striped"><caption style="display:none">floatConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'e'
><td style="vertical-align:top"'\u0065'
<>td> Requires the output to be formatted using "scientific">computerized scientific notation. Der Lokalisierungsalgorithmus wird angewendet.
Die Formatierung der Größe m hängt von ihrem Wert ab.
Wenn m naN oder unendlich ist, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben. Diese Werte werden nicht lokalisiert.
Wenn m positiv-null oder negativ-null ist, lautet "+00"
der Exponent .
Andernfalls ist das Ergebnis eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.
Lassen Sie n die eindeutige ganze Zahl sein, sodass 10<sup>n</sup <= m < 10<sup>n+1</sup>; dann der mathematisch genaue Quotient von m und 10<sup>n</sup>> sein soll, damit 1 <= a <= a <'e'
), gefolgt von dem Vorzeichen des Exponenten, gefolgt von einer Darstellung von n als dezimale ganze Zahl, wie durch die Methode Long#toString(long, int)
erzeugt, und nullabstandig, um mindestens zwei Ziffern einzuschließen.
Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder eine ist gleich der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, lautet 6
der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern ist, die nach dem Dezimalkomma in der Zeichenfolge angezeigt werden, die bzw Float#toString(float)
Double#toString(double)
. die zurückgegeben wird, wird der Wert mit dem Java.math.RoundingMode#HALF_UP Roundupalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie Float#toString(float)
für eine kanonische Darstellung des Werts oder Double#toString(double)
gegebenenfalls.
Wenn die ','
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'E'
><td style="vertical-align:top"'\u0045'
<>td> The upper-case variant of .'e'
Das Exponentsymbol ist das gebietsschemaspezifische java.text.DecimalFormatSymbols#getExponentSeparator-Exponenttrennzeichen (z. B. 'E'
).
<tr><th scope="row" style="vertical-align:top">'g'
<td style="vertical-align:top"'\u0067'
><td> Requires the output to be formatted in general scientific notation as described below. Der Lokalisierungsalgorithmus wird angewendet.
Nach dem Abrunden der Genauigkeit hängt die Formatierung der resultierenden Größe m von seinem Wert ab.
Ist m größer als oder gleich 10<sup-4></sup>, aber kleiner als 10<sup>precision</sup>, wird sie im Dezimalformat dargestellt.
Ist m kleiner als 10<sup-4></sup> oder größer als oder gleich 10<sup>precision</sup>, wird sie in computerisierter wissenschaftlicher Notation dargestellt.
Die Gesamtzahl der signifikanten Ziffern in m entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben ist, lautet 6
der Standardwert . Wenn die Genauigkeit lautet 0
, wird sie zu sein 1
.
Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'G'
><td style="vertical-align:top"'\u0047'
<>td> The upper-case variant of .'g'
<tr><th scope="row" style="vertical-align:top"'f'
><td style="vertical-align:top"'\u0066'
<>td> Requires the output to be formatted using "decimal">decimal format. Der Lokalisierungsalgorithmus wird angewendet.
Das Ergebnis ist eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.
Wenn m NaN oder unendlich, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben. Diese Werte werden nicht lokalisiert.
Die Größe wird als ganzzahliger Teil von m formatiert, wobei keine führenden Nullen vorhanden sind, gefolgt von dem Dezimaltrennzeichen, gefolgt von einer oder mehreren Dezimalstellen, die den Bruchteil von m darstellen.
Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder eine ist gleich der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, lautet 6
der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern ist, die nach dem Dezimalkomma in der Zeichenfolge angezeigt werden, die bzw Float#toString(float)
Double#toString(double)
. die zurückgegeben wird, wird der Wert mit dem Java.math.RoundingMode#HALF_UP Roundupalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie Float#toString(float)
für eine kanonische Darstellung des Werts oder Double#toString(double)
gegebenenfalls.
<tr><th scope="row" style="vertical-align:top">'a'
<td style="vertical-align:top"'\u0061'
><td> Requires the output to be formatted in hexadecimal exponential form. Es wird keine Lokalisierung angewendet.
Das Ergebnis ist eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments x darstellt.
Wenn x negativ oder ein negativer Nullwert ist, beginnt das Ergebnis mit '-'
('\u002d'
).
Wenn x positiv oder ein Positiver Nullwert ist und das '+'
Flag angegeben wird, beginnt das Ergebnis mit '+'
('\u002b'
).
Die Formatierung der Größe m hängt von ihrem Wert ab.
<ul>
<li> Wenn der Wert NaN oder unendlich ist, werden die Literalzeichenfolgen "NaN" bzw. "Infinity" ausgegeben.
<li> Wenn m null ist, wird sie durch die Zeichenfolge "0x0.0p0"
dargestellt.
<li> Ist m ein double
Wert mit einer normalisierten Darstellung, werden Teilzeichenfolgen verwendet, um die Zeichen- und Exponentenfelder darzustellen. Das Significand wird durch die Zeichen "0x1."
dargestellt, gefolgt von der hexadezimalen Darstellung des restlichen Zeichens als Bruch. Der Exponent wird durch 'p'
('\u0070'
) gefolgt von einer Dezimalzeichenfolge des unvoreingenommenen Exponenten dargestellt, als ob sie durch Aufrufen Integer#toString(int) Integer.toString
des Exponentenwerts erzeugt wird. Wenn die Genauigkeit angegeben ist, wird der Wert auf die angegebene Anzahl hexadezimaler Ziffern gerundet.
<li> Wenn m ein double
Wert mit einer subnormalen Darstellung ist, wird die Genauigkeit nicht im Bereich 1 bis 12 angegeben, einschließlich, wird das Significand durch die Zeichen '0x0.'
dargestellt, gefolgt von der hexadezimalen Darstellung des Rests des Zeichens als Bruch, und der exponent dargestellt durch 'p-1022'
. Wenn sich die Genauigkeit im Intervall befindet [1, 12], der Unternormalwert wird normalisiert, sodass er mit den Zeichen '0x1.'
beginnt, auf die Anzahl der Hexadezimalziffern der Genauigkeit gerundet und der Exponent entsprechend angepasst wird. Beachten Sie, dass mindestens eine Nichtzero-Ziffer in einem subnormalen Zeichen vorhanden sein muss.
</ul>
Wenn die '('
Kennzeichnungen ','
angegeben werden, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'A'
><td style="vertical-align:top"'\u0041'
<>td> The upper-case variant of .'a'
Die gesamte Zeichenfolge, die die Zahl darstellt, wird in Großbuchstaben konvertiert, einschließlich ('x'
) und 'p'
('\u0070'
und alle Hexadezimalziffern - 'a'
'f'
().'\u0061'
- '\u0066'
'\u0078'
</tbody></table>
Alle Flags, die für Byte, Short, Integer und Long definiert sind, gelten.
Wenn das '#'
Kennzeichen angegeben ist, ist das Dezimaltrennzeichen immer vorhanden.
Wenn keine "floatdFlags">-Flags angegeben werden, lautet die Standardformatierung wie folgt:
<ul>
<li> Die Ausgabe ist rechtsbündig innerhalb der width
<li> Negative Zahlen beginnen mit einer '-'
<li> Positive Zahlen und positive Null enthalten kein Vorzeichen oder zusätzliche führende Leerzeichen.
<li> Keine Gruppierungstrennzeichen sind enthalten
<li> Das Dezimaltrennzeichen wird nur angezeigt, wenn eine Ziffer darauf folgt.
</ul>
Die Breite "floatDWidth"> ist die Mindestanzahl der Zeichen, die in die Ausgabe geschrieben werden sollen. Dazu gehören alle Zeichen, Ziffern, Gruppierungstrennzeichen, Dezimaltrennzeichen, exponentielles Symbol, Radixindikator, Klammern und Zeichenfolgen, die unendliche und NaN darstellen. Wenn die Länge des konvertierten Werts kleiner als die Breite ist, wird die Ausgabe durch Leerzeichen ('\u0020'
) aufgefüllt, bis die Gesamtzahl der Zeichen der Breite entspricht. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn die '-'
Kennzeichnung angegeben wird, befindet sich der Abstand auf der rechten Seite. Wenn keine Breite angegeben ist, gibt es kein Minimum.
Wenn die Konvertierung "floatDPrec" oder "floatDPrec"> lautet 'e'
, 'E'
'f'
ist die Genauigkeit die Anzahl der Ziffern nach dem Dezimaltrennzeichen. Wenn die Genauigkeit nicht angegeben wird, wird davon ausgegangen, dass sie .6
Wenn die Konvertierung oder 'g'
'G'
, dann ist die Genauigkeit die Gesamtzahl der signifikanten Ziffern in der resultierenden Größe nach dem Runden. Wenn die Genauigkeit nicht angegeben ist, lautet 6
der Standardwert . Wenn die Genauigkeit lautet 0
, wird sie zu sein 1
.
Wenn die Konvertierung 'a'
oder 'A'
, dann ist die Genauigkeit die Anzahl der hexadezimalen Ziffern nach dem Radixpunkt. Wenn die Genauigkeit nicht angegeben wird, werden alle Ziffern wie zurückgegeben ausgegeben Double#toHexString(double)
.
"dnbdec"><b> BigDecimal </b>
Die folgenden Konvertierungen können angewendet java.math.BigDecimal BigDecimal
werden.
<table class="striped"><caption style="display:none">floatConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'e'
><td style="vertical-align:top"'\u0065'
<>td> Requires the output to be formatted using "bscientific">computerized scientific notation. Der Lokalisierungsalgorithmus wird angewendet.
Die Formatierung der Größe m hängt von ihrem Wert ab.
Wenn m positiv-null oder negativ-null ist, lautet "+00"
der Exponent .
Andernfalls ist das Ergebnis eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.
Lassen Sie n die eindeutige ganze Zahl sein, sodass 10<sup>n</sup <= m < 10<sup>n+1</sup>; dann der mathematisch genaue Quotient von m und 10<sup>n</sup>> sein soll, damit 1 <= a <= a <'e'
('\u0065'
), followed by the sign of the exponent, followed by a representation of n as adecimal integer, as produced by the method Long#toString(long, int)
, und nullabstandig, um mindestens zwei Ziffern einzuschließen.
Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder eine ist gleich der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, lautet 6
der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern rechts vom Dezimalkomma ist, wird der Wert mit dem Java.math.RoundingMode#HALF_UP Roundupalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie BigDecimal#toString()
für eine kanonische Darstellung des Werts .
Wenn die ','
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'E'
><td style="vertical-align:top"'\u0045'
<>td> The upper-case variant of .'e'
Das Exponentsymbol ist 'E'
('\u0045'
).
<tr><th scope="row" style="vertical-align:top">'g'
<td style="vertical-align:top"'\u0067'
><td> Requires the output to be formatted in general scientific notation as described below. Der Lokalisierungsalgorithmus wird angewendet.
Nach dem Abrunden der Genauigkeit hängt die Formatierung der resultierenden Größe m von seinem Wert ab.
Ist m größer als oder gleich 10<sup-4></sup>, aber kleiner als 10<sup>precision</sup>, wird sie im Dezimalformat dargestellt.
Ist m kleiner als 10<sup-4></sup> oder größer als oder gleich 10<sup>precision</sup>, wird sie in computerisierter wissenschaftlicher Notation dargestellt.
Die Gesamtzahl der signifikanten Ziffern in m entspricht der Genauigkeit. Wenn die Genauigkeit nicht angegeben ist, lautet 6
der Standardwert . Wenn die Genauigkeit lautet 0
, wird sie zu sein 1
.
Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
<tr><th scope="row" style="vertical-align:top"'G'
><td style="vertical-align:top"'\u0047'
<>td> The upper-case variant of .'g'
<tr><th scope="row" style="vertical-align:top"'f'
><td style="vertical-align:top"'\u0066'
<>td> Requires the output to be formatted using "bdecimal">decimal format. Der Lokalisierungsalgorithmus wird angewendet.
Das Ergebnis ist eine Zeichenfolge, die das Vorzeichen und die Größe (absoluter Wert) des Arguments darstellt. Die Formatierung des Zeichens wird im Lokalisierungsalgorithmus beschrieben. Die Formatierung der Größe m hängt von ihrem Wert ab.
Die Größe wird als ganzzahliger Teil von m formatiert, wobei keine führenden Nullen vorhanden sind, gefolgt von dem Dezimaltrennzeichen, gefolgt von einer oder mehreren Dezimalstellen, die den Bruchteil von m darstellen.
Die Anzahl der Ziffern im Ergebnis für den Bruchteil von m oder eine ist gleich der Genauigkeit. Wenn die Genauigkeit nicht angegeben wird, lautet 6
der Standardwert . Wenn die Genauigkeit kleiner als die Anzahl der Ziffern rechts vom Dezimalkomma ist, wird der Wert mit dem Java.math.RoundingMode#HALF_UP Roundupalgorithmus gerundet. Andernfalls können Nullen angefügt werden, um die Genauigkeit zu erreichen. Verwenden Sie BigDecimal#toString()
für eine kanonische Darstellung des Werts .
</tbody></table>
Alle Flags, die für Byte, Short, Integer und Long definiert sind, gelten.
Wenn das '#'
Kennzeichen angegeben ist, ist das Dezimaltrennzeichen immer vorhanden.
Das Standardverhalten, wenn keine Kennzeichnungen angegeben werden, ist identisch mit Float und Double.
Die Spezifikation der Breite und Genauigkeit entspricht der Definition für Float und Double.
<h4>"ddt">Date/Time</h4>
Diese Konvertierung kann auf long
,, Long
, Calendar
und TemporalAccessor TemporalAccessor
<Date
Tabellenklasse="striped"><caption style="display:none">DTConv</caption><tbody angewendet werden.>
<tr><th scope="row" style="vertical-align:top">'t'
<td style="vertical-align:top"'\u0074'
><td> Prefix for date and time conversion characters. <tr><th scope="row" style="vertical-align:top"'T'
><td style="vertical-align:top"'\u0054'
<>td> The upper-case variant of .'t'
</tbody></table>
Die folgenden Suffixe für Datums- und Uhrzeitkonvertierungszeichen werden für die 't'
und 'T'
Konvertierungen definiert. Die Typen sind ähnlich, aber nicht vollständig identisch mit denen, die von GNU date
und POSIX strftime(3c)
definiert wurden. Zusätzliche Konvertierungstypen werden für den Zugriff auf javaspezifische Funktionen bereitgestellt (z. B. 'L'
für Millisekunden innerhalb der zweiten).
Die folgenden Konvertierungszeichen werden für Formatierungszeiten verwendet:
<table class="striped"><caption style="display:none">time</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'H'
<td style="vertical-align:top">'\u0048'
<td> Hour of the day for the 24-hour clock, formatiert as two digits with a leading zero as necessary, dh 00 - 23
00
. corresponds to mitternacht.
<tr><th scope="row" style="vertical-align:top"'I'
><td style="vertical-align:top"'\u0049'
<>td> Hour for the 12-hour clock, formatiert as two digits with a leading zero as necessary, dh . 01 - 12
01
entspricht einer Uhr (morgens oder nachmittags).
<tr><th scope="row" style="vertical-align:top">'k'
<td style="vertical-align:top">'\u006b'
<td> Hour of the day for the 24-hour clock, d.h. 0 - 23
0
entspricht Mitternacht.
<tr><th scope="row" style="vertical-align:top">'l'
<td style="vertical-align:top">'\u006c'
<td> Hour for the 12-hour clock, dh . 1 - 12
1
corresponds to one o'clock (either morning or afternoon).
<tr><th scope="row" style="vertical-align:top"'M'
><td style="vertical-align:top"'\u004d'
<>td Minute within the hour formatted> as two digits with a leading zero as necessary, d. h. 00 - 59
. .
<tr><th scope="row" style="vertical-align:top"'S'
<>td style="vertical-align:top"<>'\u0053'
td Seconds within the minute, formatiert> as two digits with a leading zero as required, dh 00 - 60
("60
" is a special value required to support leap seconds).
<tr><th scope="row" style="vertical-align:top"'L'
><td style="vertical-align:top"'\u004c'
<>td Millisecond> within the second formatted as three digits with leading zeros as necessary, dh . 000 - 999
<tr><th scope="row" style="vertical-align:top"'N'
><td style="vertical-align:top"'\u004e'
<>td Nanosecond> innerhalb der zweiten, formatiert als neun Ziffern mit führenden Nullen nach Bedarf, d. h. 000000000 - 999999999
. . Die Genauigkeit dieses Werts ist durch die Auflösung des zugrunde liegenden Betriebssystems oder der Hardware begrenzt.
<tr><th scope="row" style="vertical-align:top"'p'
><td style="vertical-align:top"'\u0070'
<>td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings morning or afternoon marker in lower case, z.B.""am
oder "pm
". Die Verwendung des Konvertierungspräfixes 'T'
erzwingt diese Ausgabe in Großbuchstaben. (Beachten Sie, dass 'p'
eine Kleinbuchstabe ausgegeben wird. Dies unterscheidet sich von GNU date
und POSIX strftime(3c)
, die Groß-/Kleinschreibung erzeugen.)
<tr><th scope="row" style="vertical-align:top"'z'
<>td style="vertical-align:top"<'\u007a'
>td>RFC 822 style numeric time zone offset from GMT, z. B. . -0800
Dieser Wert wird bei Bedarf für Sommerzeit angepasst. Für long
, Long
und Date
die verwendete Zeitzone ist die Standardzeitzone "TimeZone#getDefault()" für diese Instanz des virtuellen Java-Computers.
<tr><th scope="row" style="vertical-align:top">'Z'
<td style="vertical-align:top"'\u005a'
><td> A string representing the abkürzung for the time zone. Dieser Wert wird bei Bedarf für Sommerzeit angepasst. Für long
, Long
und Date
die verwendete Zeitzone ist die Standardzeitzone "TimeZone#getDefault()" für diese Instanz des virtuellen Java-Computers. Das Gebietsschema des Formatierers ersetzt das Gebietsschema des Arguments (sofern vorhanden).
<tr><th scope="row" style="vertical-align:top"<'s'
>td style="vertical-align:top"><'\u0073'
td> Seconds since the beginning of the epoch starting at 1 January 1970 00:00:00
UTC, dh Long.MIN_VALUE/1000
to .Long.MAX_VALUE/1000
<tr><th scope="row" style="vertical-align:top"<'Q'
>td style="vertical-align:top"'\u004f'
><td> Milliseconds seit Beginn der Epoche ab dem 1. Januar 1970 00:00:00
UTC, d. h. Long.MIN_VALUE
bis .Long.MAX_VALUE
Die Genauigkeit dieses Werts ist durch die Auflösung des zugrunde liegenden Betriebssystems oder der Hardware begrenzt.
</tbody></table>
Die folgenden Konvertierungszeichen werden zum Formatieren von Datumsangaben verwendet:
<table class="striped"><caption style="display:none">date</caption><tbody>
<tr><th scope="row" style="vertical-align:top">'B'
<td style="vertical-align:top">'\u0042'
<td> Locale-specific java.text.DateFormatSymbols#getMonths full month name, z. B. "January"
, . "February"
<tr><th scope="row" style="vertical-align:top">'b'
<td style="vertical-align:top">'\u0062'
<td> Locale-specific java.text.DateFormatSymbols#getShortMonths abgekürzter Monatsname, z. B. "Jan"
, . "Feb"
<tr><th scope="row" style="vertical-align:top"'h'
><td style="vertical-align:top"'\u0068'
<>td> Same as .'b'
<tr><th scope="row" style="vertical-align:top"<'A'
>td style="vertical-align:top"<>'\u0041'
td> Locale-specific full name of the java.text.DateFormatSymbols#getWeekdays day of the week, z. B.<"Sunday"
"Monday"
tr><th scope="row" style="vertical-align:top"'a'
><td style="vertical-align:top"><'\u0061'
td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, z.B. "Sun"
, tr><"Mon"
<th scope="row" style="vertical-align:top">'C'
<td style="vertical-align:top"<'\u0043'
>td> Vierstelliges Jahr dividiert durch 100
, formatiert als zwei Ziffern mit vorangestellter Null nach Bedarf, d.h.<00 - 99
tr><th scope="row" style="vertical-align:top">'Y'
<td style="vertical-align:top">'\u0059'
<td> Year, formatiert auf mindestens vier Ziffern mit führenden Nullen nach Bedarf, z. B. 0092
92
CE für den gregorianischen Kalender.
<tr><th scope="row" style="vertical-align:top"'y'
><td style="vertical-align:top"'\u0079'
<>td Last two digits of the year, formatiert> with leading zeros as necessary, d. h. 00 - 99
. .
<tr><th scope="row" style="vertical-align:top"'j'
><td style="vertical-align:top"'\u006a'
<>td Day of year, formatiert> als drei Ziffern mit führenden Nullen nach Bedarf, z. B. 001 - 366
für den gregorianischen Kalender. 001
entspricht dem ersten Tag des Jahres.
<tr><th scope="row" style="vertical-align:top"<'m'
>td style="vertical-align:top">'\u006d'
<td> Month, formatiert als zwei Ziffern mit führenden Nullen nach Bedarf, d. h. 01 - 13
"01
" ist der erste Monat des Jahres und ("13
" ist ein spezieller Wert, der zur Unterstützung von Mondkalendern erforderlich ist).
<tr><th scope="row" style="vertical-align:top"<'d'
>td style="vertical-align:top"<>'\u0064'
td Day of month, formatiert> as two digits with leading zeros as necessary, d.h. 01 - 31
where "01
" is the first day of the month.
<tr><th scope="row" style="vertical-align:top">'e'
<td style="vertical-align:top">'\u0065'
<td> Day of month, formatted as two digits, d.h. 1 - 31
where "1
" is the first day of the month.
</tbody></table>
Die folgenden Konvertierungszeichen werden zum Formatieren allgemeiner Datums-/Uhrzeitkompositionen verwendet.
<table class="striped"><caption style="display:none">composites</caption><tbody>
<tr><th scope="row" style="vertical-align:top"<'R'
>td style="vertical-align:top">'\u0052'
<td> Time formatted for the 24-hour clock as "%tH:%tM"
<tr><th scope="row" style="vertical-align:top"td style="><'T'
vertical-align:"vertical-align:top"'\u0054'
<>td> Time formatted for the 24-hour clock as ."%tH:%tM:%tS"
<tr><th scope="row" style="vertical-align:top"'r'
><td style="vertical-align:top"'\u0072'
<>td> Time formatted for the 12-hour clock as ."%tI:%tM:%tS %Tp"
Die Position der Markierung für den Morgen oder Nachmittag ('%Tp'
) kann gebietsschemaabhängig sein.
<tr><th scope="row" style="vertical-align:top"'D'
><td style="vertical-align:top"'\u0044'
<>td> Date formatted as ."%tm/%td/%ty"
<tr><th scope="row" style="vertical-align:top"'F'
<>td style="vertical-align:top"<'\u0046'
>td>ISO 8601 complete date formatted as ."%tY-%tm-%td"
<tr><th scope="row" style="vertical-align:top">'c'
<td style="vertical-align:top">'\u0063'
<td> Date and time formatted as "%ta %tb %td %tT %tZ %tY"
, z. B. "Sun Jul 20 16:17:00 EDT 1969"
. .
</tbody></table>
Das kennzeichen, das '-'
für allgemeine Konvertierungen definiert ist, gilt. Wenn die '#'
Kennzeichnung angegeben wird, wird eine FormatFlagsConversionMismatchException
ausgelöst.
Die Breite ist die Mindestanzahl von Zeichen, die in die Ausgabe geschrieben werden sollen. Wenn die Länge des konvertierten Werts kleiner als der width
Wert ist, wird die Ausgabe durch Leerzeichen ('\u0020'
) aufgefüllt, bis die Gesamtzahl der Zeichen der Breite entspricht. Der Abstand befindet sich standardmäßig auf der linken Seite. Wenn die '-'
Kennzeichnung angegeben wird, befindet sich der Abstand auf der rechten Seite. Wenn keine Breite angegeben ist, gibt es kein Minimum.
Die Genauigkeit ist nicht anwendbar. Wenn die Genauigkeit angegeben wird, wird eine IllegalFormatPrecisionException
ausgelöst.
<h4>"dper">Percent</h4>
Die Konvertierung entspricht keinem Argument.
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'%'
<>td> The result is a literal '%'
()'\u0025'
Die Breite ist die minimale Anzahl von Zeichen, die in die Ausgabe geschrieben werden sollen, einschließlich der '%'
. Wenn die Länge des konvertierten Werts kleiner als der width
Wert ist, wird die Ausgabe durch Leerzeichen ('\u0020'
) aufgefüllt, bis die Gesamtzahl der Zeichen der Breite entspricht. Der Abstand befindet sich links. Wenn die Breite nicht angegeben ist, wird nur die '%'
Ausgabe ausgegeben.
Das kennzeichen, das '-'
für allgemeine Konvertierungen definiert ist, gilt. Wenn andere Flags bereitgestellt werden, wird eine FormatFlagsConversionMismatchException
ausgelöst.
Die Genauigkeit ist nicht anwendbar. Wenn die Genauigkeit angegeben wird, wird eine IllegalFormatPrecisionException
ausgelöst.
</tbody></table>
<h4>"dls">Linientrennzeichen</h4>
Die Konvertierung entspricht keinem Argument.
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"><'n'
td> the platform-specific line separator as returned by .System#lineSeparator()
</tbody></table>
Kennzeichen, Breite und Genauigkeit sind nicht anwendbar. Wenn vorhanden sind, wird ein IllegalFormatFlagsException
, IllegalFormatWidthException
und IllegalFormatPrecisionException
, bzw. wird ausgelöst.
<h4>"dpos">Argument Index</h4>
Formatbezeichner können auf drei Arten auf Argumente verweisen:
<ul>
<li>Explicit indexing is used when the format specifier contains an argument index. Der Argumentindex ist eine dezimale ganze Zahl, die die Position des Arguments in der Argumentliste angibt. Das erste Argument wird durch "1$
", die zweite durch "2$
" usw. referenziert. Auf ein Argument kann mehrmals verwiesen werden.
Zum Beispiel:
<Blockquote>
formatter.format("%4$s %3$s %2$s %1$s %4$s %3$s %2$s %1$s",
"a", "b", "c", "d")
// -> "d c b a d c b a"
</blockquote>
<li>Relative Indizierung wird verwendet, wenn der Formatbezeichner ein '<'
('\u003c'
) Flag enthält, das bewirkt, dass das Argument für den vorherigen Formatbezeichner erneut verwendet wird. Wenn kein vorheriges Argument vorhanden ist, wird ein MissingFormatArgumentException
Fehler ausgelöst.
<Blockquote>
formatter.format("%s %s %<s %<s", "a", "b", "c", "d")
// -> "a b b b"
// "c" and "d" are ignored because they are not referenced
</blockquote>
<li>Gewöhnliche Indizierung wird verwendet, wenn der Formatbezeichner weder einen Argumentindex noch ein '<'
Flag enthält. Jedem Formatbezeichner, der gewöhnliche Indizierung verwendet, wird ein sequenzieller impliziter Index in der Argumentliste zugewiesen, der unabhängig von den Indizes ist, die von expliziter oder relativer Indizierung verwendet werden.
<Blockquote>
formatter.format("%s %s %s %s", "a", "b", "c", "d")
// -> "a b c d"
</blockquote>
</ul>
Es ist möglich, eine Formatzeichenfolge zu haben, die alle Formen der Indizierung verwendet, z. B.:
<Blockquote>
formatter.format("%2$s %s %<s %s", "a", "b", "c", "d")
// -> "b a a b"
// "c" and "d" are ignored because they are not referenced
</blockquote>
Die maximale Anzahl von Argumenten ist durch die maximale Dimension eines Java-Arrays begrenzt, wie durch <zitate>The Java&trade definiert; Spezifikation</Zitat> des virtuellen Computers. Wenn der Argumentindex keinem verfügbaren Argument entspricht, wird ein MissingFormatArgumentException
Fehler ausgelöst.
Wenn mehr Argumente als Formatbezeichner vorhanden sind, werden die zusätzlichen Argumente ignoriert.
Sofern nicht anders angegeben, führt die Übergabe eines null
Arguments an eine beliebige Methode oder einen Konstruktor in dieser Klasse dazu, dass ein NullPointerException
Fehler ausgelöst wird.
Hinzugefügt in 1.5.
Java-Dokumentation für java.util.Formatter
.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die vom Android Open Source-Projekt erstellt und freigegeben werden und gemäß den in der Creative Commons 2.5 Attribution License beschriebenen Begriffen verwendet werden.
Konstruktoren
Formatter() |
Erstellt einen neuen Formatierer. |
Formatter(File) |
Erstellt einen neuen Formatierer mit der angegebenen Datei. |
Formatter(File, Charset, Locale) |
Erstellt einen neuen Formatierer mit der angegebenen Datei, dem angegebenen Zeichensatz und dem Gebietsschema. |
Formatter(File, String) |
Erstellt einen neuen Formatierer mit der angegebenen Datei und dem angegebenen Zeichensatz. |
Formatter(File, String, Locale) |
Erstellt einen neuen Formatierer mit der angegebenen Datei, dem angegebenen Zeichensatz und dem Gebietsschema. |
Formatter(IAppendable) |
Erstellt einen neuen Formatierer mit dem angegebenen Ziel. |
Formatter(IAppendable, Locale) |
Erstellt einen neuen Formatierer mit dem angegebenen Ziel und Gebietsschema. |
Formatter(Locale) |
Erstellt einen neuen Formatierer mit dem angegebenen Gebietsschema. |
Formatter(PrintStream) |
Erstellt einen neuen Formatierer mit dem angegebenen Druckdatenstrom. |
Formatter(Stream) |
Erstellt einen neuen Formatierer mit dem angegebenen Ausgabedatenstrom. |
Formatter(Stream, Charset, Locale) |
Erstellt einen neuen Formatierer mit dem angegebenen Ausgabedatenstrom, Zeichensatz und Gebietsschema. |
Formatter(Stream, String) |
Erstellt einen neuen Formatierer mit dem angegebenen Ausgabedatenstrom und zeichensatz. |
Formatter(Stream, String, Locale) |
Erstellt einen neuen Formatierer mit dem angegebenen Ausgabedatenstrom, Zeichensatz und Gebietsschema. |
Formatter(String) |
Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen. |
Formatter(String, Charset, Locale) |
Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen, Zeichensatz und Gebietsschema. |
Formatter(String, String) |
Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen und Zeichensatz. |
Formatter(String, String, Locale) |
Erstellt einen neuen Formatierer mit dem angegebenen Dateinamen, Zeichensatz und Gebietsschema. |
Eigenschaften
Class |
Gibt die Laufzeitklasse dieses Werts |
Handle |
Das Handle für die zugrunde liegende Android-Instanz. (Geerbt von Object) |
JniIdentityHashCode |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
JniPeerMembers |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. |
PeerReference |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
ThresholdClass |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
ThresholdType |
Diese API unterstützt die Mono für Android-Infrastruktur und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. (Geerbt von Object) |
Methoden
Clone() |
Erstellt und gibt eine Kopie dieses Objekts zurück. (Geerbt von Object) |
Close() |
Schließt diesen Formatierer. |
Dispose() |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
Dispose(Boolean) |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
Equals(Object) |
Gibt an, ob ein anderes Objekt "gleich" diesem Objekt ist. (Geerbt von Object) |
Flush() |
Löscht diesen Formatierer. |
Format(Locale, String, Object[]) |
Schreibt eine formatierte Zeichenfolge mithilfe der angegebenen Formatzeichenfolge und -argumente in das Ziel dieses Objekts. |
Format(String, Object[]) |
Schreibt eine formatierte Zeichenfolge mithilfe der angegebenen Formatzeichenfolge und -argumente in das Ziel dieses Objekts. |
GetHashCode() |
Gibt einen Hashcodewert für das Objekt zurück. (Geerbt von Object) |
IoException() |
Gibt den |
JavaFinalize() |
Wird vom Garbage Collector für ein Objekt aufgerufen, wenn die Garbage Collection bestimmt, dass keine weiteren Verweise auf das Objekt vorhanden sind. (Geerbt von Object) |
Locale() |
Gibt das Gebietsschema zurück, das durch die Konstruktion dieses Formatierers festgelegt wurde. |
Notify() |
Aktiviert einen einzelnen Thread, der auf dem Monitor dieses Objekts wartet. (Geerbt von Object) |
NotifyAll() |
Aktiviert alle Threads, die auf dem Monitor dieses Objekts warten. (Geerbt von Object) |
Out() |
Gibt das Ziel für die Ausgabe zurück. |
SetHandle(IntPtr, JniHandleOwnership) |
Legt die Handle-Eigenschaft fest. (Geerbt von Object) |
ToArray<T>() |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
ToString() |
Gibt eine Zeichenfolgendarstellung des Objekts zurück. (Geerbt von Object) |
UnregisterFromRuntime() |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
Wait() |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch em benachrichtigt/em> oder <em>unterbrochen</em>.<>< (Geerbt von Object) |
Wait(Int64) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Wait(Int64, Int32) |
Bewirkt, dass der aktuelle Thread wartet, bis er wach ist, in der Regel durch <em>benachrichtigt</em> oder <em>unterbrochen</em> oder bis eine bestimmte Menge an Echtzeit verstrichen ist. (Geerbt von Object) |
Explizite Schnittstellenimplementierungen
IJavaPeerable.Disposed() |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
IJavaPeerable.Finalized() |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
IJavaPeerable.JniManagedPeerState |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. (Geerbt von Object) |
Erweiterungsmethoden
JavaCast<TResult>(IJavaObject) |
Führt eine android-laufzeitgecheckte Typkonvertierung aus. |
JavaCast<TResult>(IJavaObject) |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. |
GetJniTypeName(IJavaPeerable) |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. |
FlushAsync(IFlushable) |
Ein Dolmetscher für Formatzeichenfolgen im Printf-Format. |