Formatter Kelas
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Penerjemah untuk string format gaya cetak.
[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
- Warisan
- Atribut
- Penerapan
Keterangan
Penerjemah untuk string format gaya cetak. Kelas ini menyediakan dukungan untuk pembenaran dan perataan tata letak, format umum untuk data numerik, string, dan tanggal/waktu, dan output khusus lokal. Jenis Java umum seperti byte
, java.math.BigDecimal BigDecimal
, dan Calendar
didukung. Kustomisasi pemformatan terbatas untuk jenis pengguna sewenang-wenang disediakan melalui Formattable
antarmuka.
Formatter belum tentu aman untuk akses multithreaded. Keamanan utas bersifat opsional dan merupakan tanggung jawab pengguna metode di kelas ini.
Pencetakan yang diformat untuk bahasa Java sangat terinspirasi oleh C.printf
Meskipun string format mirip dengan C, beberapa penyesuaian telah dibuat untuk mengakomodasi bahasa Java dan mengeksploitasi beberapa fiturnya. Selain itu, pemformatan Java lebih ketat daripada C; misalnya, jika konversi tidak kompatibel dengan bendera, pengecualian akan dilemparkan. Di C, bendera yang tidak dapat diaplikasikan diabaikan secara diam-diam. String format dengan demikian dimaksudkan untuk dikenali oleh programmer C tetapi belum tentu sepenuhnya kompatibel dengan yang ada di C.
Contoh penggunaan yang diharapkan:
<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>
Metode kenyamanan untuk permintaan pemformatan umum ada seperti yang diilustrasikan oleh pemanggilan berikut:
<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>
Seperti C, sprintf(3)
String dapat diformat menggunakan metode String#format(String,Object...) String.format
statis :
<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>
Spesifikasi ini dibagi menjadi dua bagian. Bagian pertama, Ringkasan, mencakup konsep pemformatan dasar. Bagian ini ditujukan untuk pengguna yang ingin memulai dengan cepat dan terbiasa dengan pencetakan yang diformat dalam bahasa pemrograman lainnya. Bagian kedua, Detail, mencakup detail implementasi tertentu. Ini ditujukan untuk pengguna yang menginginkan spesifikasi perilaku pemformatan yang lebih tepat.
<h3>"summary">Summary</h3>
Bagian ini dimaksudkan untuk memberikan gambaran singkat tentang konsep pemformatan. Untuk detail perilaku yang tepat, lihat bagian Detail.
<h4>"sintaks">Format Sintaks< String/h4>
Setiap metode yang menghasilkan output berformat memerlukan string format dan daftar argumen. String format adalah yang String
mungkin berisi teks tetap dan satu atau beberapa penentu format yang disematkan. Pertimbangkan contoh berikut:
<blockquote>
Calendar c = ...;
String s = String.format("Duke's Birthday: %1$tm %1$te,%1$tY", c);
</blockquote>
String format ini adalah argumen pertama untuk format
metode . Ini berisi tiga penentu format "%1$tm
", "%1$te
", dan "%1$tY
" yang menunjukkan bagaimana argumen harus diproses dan di mana mereka harus disisipkan dalam teks. Bagian yang tersisa dari string format adalah teks tetap termasuk "Dukes Birthday: "
dan spasi atau tanda baca lainnya.
Daftar argumen terdiri dari semua argumen yang diteruskan ke metode setelah string format. Dalam contoh di atas, daftar argumen berukuran satu dan terdiri dari java.util.Calendar Calendar
objek c
.
<Ul>
<li> Penentu format untuk jenis umum, karakter, dan numerik memiliki sintaks berikut:
<blockquote>
%[argument_index$][flags][width][.precision]conversion
</blockquote>
argument_index opsional adalah bilangan bulat desimal yang menunjukkan posisi argumen dalam daftar argumen. Argumen pertama dirujuk oleh "1$
", yang kedua oleh "2$
", dll.
Bendera opsional adalah sekumpulan karakter yang memodifikasi format output. Kumpulan bendera yang valid tergantung pada konversi.
Lebar opsional adalah bilangan bulat desimal positif yang menunjukkan jumlah minimum karakter yang akan ditulis ke output.
Presisi opsional adalah bilangan bulat desimal non-negatif yang biasanya digunakan untuk membatasi jumlah karakter. Perilaku spesifik tergantung pada konversi.
Konversi yang diperlukan adalah karakter yang menunjukkan bagaimana argumen harus diformat. Kumpulan konversi yang valid untuk argumen tertentu bergantung pada jenis data argumen.
<li> Penentu format untuk jenis yang digunakan untuk mewakili tanggal dan waktu memiliki sintaks berikut:
<blockquote>
%[argument_index$][flags][width]conversion
</blockquote>
Argument_index, bendera, dan lebar opsional didefinisikan seperti di atas.
Konversi yang diperlukan adalah urutan dua karakter. Karakter pertama adalah 't'
atau 'T'
. Karakter kedua menunjukkan format yang akan digunakan. Karakter ini mirip dengan tetapi tidak sepenuhnya identik dengan yang didefinisikan oleh GNU date
dan POSIX strftime(3c)
.
<li> Penentu format yang tidak sesuai dengan argumen memiliki sintaks berikut:
<blockquote>
%[flags][width]conversion
</blockquote>
Bendera dan lebar opsional didefinisikan seperti di atas.
Konversi yang diperlukan adalah karakter yang menunjukkan konten yang akan disisipkan dalam output.
</Ul>
<Konversi <h4> /h4>
Konversi dibagi menjadi kategori berikut:
<Ol>
<li><b>General</b> - dapat diterapkan ke jenis argumen apa pun
<li><b>Character</b> - dapat diterapkan ke jenis dasar yang mewakili karakter Unicode: char
, , Character
, byte
Byte
, short
, dan Short
. Konversi ini juga dapat diterapkan ke jenis int
dan Integer
ketika Character#isValidCodePoint
mengembalikan<true
li><b>Numerik</b>
<Ol>
<li><b>Integral</b> - dapat diterapkan ke jenis integral Java: byte
, , , Byte
short
, Short
dan Integer
int
, long
, , Long
dan java.math.BigInteger BigInteger
(tetapi tidak char
atau Character
)
<li><b>Floating Point</b> - dapat diterapkan ke jenis floating-point Java: float
, , Float
, double
, Double
dan java.math.BigDecimal BigDecimal
</ol>
<li><b>Date/Time</b> - dapat diterapkan ke jenis Java yang mampu mengodekan tanggal atau waktu: long
, , Long
, Calendar
, Date
dan TemporalAccessor TemporalAccessor
<li><b>Percent</b> - menghasilkan literal '%'
('\u0025'
)
<li><b>Line Separator</b> - menghasilkan pemisah baris khusus platform
</Ol>
Untuk kategori konversi Umum, Karakter, Angka, Integral , dan Tanggal/Waktu , kecuali ditentukan lain, jika argumen arg adalah null
, maka hasilnya adalah "null
".
Tabel berikut ini meringkas konversi yang didukung. Konversi yang ditandai oleh karakter huruf besar (yaitu 'B'
, , , 'X'
'E'
'S'
'H'
'G'
'A'
'C'
, , dan 'T'
) sama dengan yang untuk karakter konversi huruf kecil yang sesuai kecuali bahwa hasilnya dikonversi ke huruf besar sesuai dengan aturan yang berlaku .java.util.Locale Locale
Jika tidak ada lokal eksplisit yang ditentukan, baik pada konstruksi instans atau sebagai parameter untuk pemanggilan metodenya, maka java.util.Locale.Category#FORMAT default locale
digunakan.
<table class="striped"><caption style="display:none">genConv</caption><thead><tr><th scope="col" style="vertical-align:bottom"> Conversion <th scope="col" style=""vertikal-align:bottom"> Argumen Kategori <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" > umum <td> Jika argumen arg adalah null
, maka hasilnya adalah "false
". Jika arg adalah boolean
atau Boolean
, maka hasilnya adalah string yang dikembalikan oleh String#valueOf(boolean) String.valueOf(arg)
. Jika tidak, hasilnya adalah "true".
<tr><th scope="row" style="vertical-align:top"'h'
>,<'H'
td style="vertical-align:top"> general <td> Hasil diperoleh dengan memanggil Integer.toHexString(arg.hashCode())
.
<tr><th scope="row" style="vertical-align:top"'s'
>,<'S'
td style="vertical-align:top"> general <td> Jika arg mengimplementasikan Formattable
, maka Formattable#formatTo arg.formatTo
dipanggil. Jika tidak, hasilnya diperoleh dengan memanggil arg.toString()
.
<tr><th scope="row" style="vertical-align:top">'c'
, 'C'
<td style="vertical-align:top"> character <td> Hasilnya adalah karakter Unicode
<tr><th scope="row" style="vertical-align:top"><'d'
td style="vertical-align:top"> integral <td> Hasil diformat sebagai bilangan bulat desimal
<tr><th scope="row" style="vertical-align:top"><'o'
td style="vertical-align:top"> integral <td> Hasil diformat sebagai bilangan bulat oktal
<tr><th scope="row" style="vertical-align:top">'x'
, 'X'
<td style="vertical-align:top"> integral <td> Hasil diformat sebagai bilangan bulat heksadesimal
<tr><th scope="row" style="vertical-align:top">'e'
, 'E'
<td style="vertical-align:top"> floating point <td> Hasilnya diformat sebagai angka desimal dalam notasi ilmiah komputerisasi
<tr><th scope="row" style="vertical-align:top"><'f'
td style="vertical-align:top"> floating point <td> Hasil diformat sebagai angka desimal
<tr><th scope="row" style="vertical-align:top">'g'
, 'G'
<td style="vertical-align:top"> floating point <td> Hasilnya diformat menggunakan notasi ilmiah komputerisasi atau format desimal, tergantung pada presisi dan nilai setelah pembulatan.
<tr><th scope="row" style="vertical-align:top">'a'
, 'A'
<td style="vertical-align:top"> floating point <td> Hasilnya diformat sebagai angka floating-point heksadesimal dengan significand dan eksponen. Konversi ini b <tidak/b> didukung untuk BigDecimal
jenis meskipun yang terakhir berada dalam kategori argumen floating point.<>
<tr><th scope="row" style="vertical-align:top">'t'
, 'T'
<td style="vertical-align:top"> date/time <td> Prefix untuk karakter konversi tanggal dan waktu. Lihat Konversi Tanggal/Waktu.
<tr><th scope="row" style="vertical-align:top"'%'
><td style="vertical-align:top"> percent <td> Hasilnya adalah literal '%'
()'\u0025'
<tr><th scope="row" style="vertical-align:top"><'n'
td style="vertical-align:top"> line separator <td> Hasilnya adalah pemisah baris khusus platform
</tbody></table>
Setiap karakter yang tidak secara eksplisit didefinisikan sebagai konversi ilegal dan dicadangkan untuk ekstensi di masa mendatang.
<h4>"dt">Konversi< Tanggal/Waktu/h4>
Karakter akhiran konversi tanggal dan waktu berikut didefinisikan untuk 't'
konversi dan 'T'
. Jenisnya mirip dengan tetapi tidak sepenuhnya identik dengan yang ditentukan oleh GNU date
dan POSIX strftime(3c)
. Jenis konversi tambahan disediakan untuk mengakses fungsionalitas khusus Java (misalnya 'L'
untuk milidetik dalam detik).
Karakter konversi berikut digunakan untuk waktu pemformatan:
<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, diformat sebagai dua digit dengan nol di depan sesuai kebutuhan yaitu . 00 - 23
<tr><th scope="row" style="vertical-align:top"><'I'
td> Hour for the 12-hour clock, diformat sebagai dua digit dengan nol di depan seperlunya01 - 12
, yaitu .
<tr><th scope="row" style="vertical-align:top"><'k'
td> Hour of the day untuk jam 24 jam, yaitu . 0 - 23
<tr><th scope="row" style="vertical-align:top"><'l'
td> Hour for the 12-hour clock, yaitu . 1 - 12
<tr><th scope="row" style="vertical-align:top"><'M'
td> Minute dalam jam yang diformat sebagai dua digit dengan nol di depan seperlunya, yaitu . 00 - 59
<tr><th scope="row" style="vertical-align:top"'S'
<>td> Seconds dalam menit, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu 00 - 60
("60
" adalah nilai khusus yang diperlukan untuk mendukung detik lompatan).
<tr><th scope="row" style="vertical-align:top"><'L'
td> Millisecond dalam yang kedua diformat sebagai tiga digit dengan nol di depan seperlunya, yaitu . 000 - 999
<tr><th scope="row" style="vertical-align:top"><'N'
td> Nanosecond in the second, diformat sebagai sembilan digit dengan nol di depan seperlunya, yaitu . 000000000 - 999999999
<tr><th scope="row" style="vertical-align:top"><'p'
td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings penanda pagi atau sore dalam huruf kecil, misalnya.""am
atau "pm
". Penggunaan awalan 'T'
konversi memaksa output ini ke huruf besar.
<tr><th scope="row" style="vertical-align:top">'z'
<td>RFC 822 style numeric time zone offset from GMT, misalnya . -0800
Nilai ini akan disesuaikan seperlunya untuk Daylight Saving Time. Untuk long
, Long
, dan Date
zona waktu yang digunakan adalah zona waktu default TimeZone#getDefault() untuk instans komputer virtual Java ini.
<tr><th scope="row" style="vertical-align:top"<>'Z'
td> A string yang mewakili singkatan untuk zona waktu. Nilai ini akan disesuaikan seperlunya untuk Daylight Saving Time. Untuk long
, Long
, dan Date
zona waktu yang digunakan adalah zona waktu default TimeZone#getDefault() untuk instans komputer virtual Java ini. Lokal Formatter akan menggantikan lokal argumen (jika ada).
<tr><th scope="row" style="vertical-align:top"<'s'
>td> Detik sejak awal epoch mulai 1 Januari 1970 00:00:00
UTC, yaitu Long.MIN_VALUE/1000
ke .Long.MAX_VALUE/1000
<tr><th scope="row" style="vertical-align:top"<'Q'
>td> Milidetik sejak awal epoch mulai 1 Januari 1970 00:00:00
UTC, yaitu Long.MIN_VALUE
ke .Long.MAX_VALUE
</tbody></table>
Karakter konversi berikut digunakan untuk memformat tanggal:
<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, misalnya "January"
, . "February"
<tr><th scope="row" style="vertical-align:top"'b'
<>td> Locale-specific java.text.DateFormatSymbols#getShortMonths singkatan nama bulan, misalnya "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 nama lengkap java.text.DateFormatSymbols#getWeekdays day of the week, misalnya "Sunday"
, "Monday"
<tr><th scope="row" style="vertical-align:top"<>'a'
td> Locale-specific short name of the java.text.DateFormatSymbols#getShortWeekdays day of the week, misalnya "Sun"
, tr "Mon"
><<th scope="row" style="vertical-align:top"'C'
<>td> Empat digit tahun dibagi dengan 100
, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu 00 - 99
tr><th scope="row" style="vertical-align:top"<'Y'
>td> Year, diformat sebagai setidaknya empat digit dengan nol di depan seperlunya, misalnya 0092
sama dengan 92
CE untuk kalender Gregorian.<
<tr><th scope="row" style="vertical-align:top"><'y'
td> Dua digit terakhir dalam setahun, diformat dengan nol di depan seperlunya, yaitu . 00 - 99
<tr><th scope="row" style="vertical-align:top"><'j'
td> Day of year, diformat sebagai tiga digit dengan nol di depan seperlunya, misalnya 001 - 366
untuk kalender Gregorian.
<tr><th scope="row" style="vertical-align:top"><'m'
td> Month, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu . 01 - 13
<tr><th scope="row" style="vertical-align:top"'d'
<>td> Day of month, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu 01 - 31
<tr><th scope="row" style="vertical-align:top"'e'
<>td> Day of month, diformat sebagai dua digit, yaitu . 1 - 31
</tbody></table>
Karakter konversi berikut digunakan untuk memformat komposisi tanggal/waktu umum.
<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"
Lokasi penanda pagi atau sore ('%Tp'
) mungkin bergantung pada lokal.
<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"
, misalnya . "Sun Jul 20 16:17:00 EDT 1969"
</tbody></table>
Setiap karakter yang tidak secara eksplisit didefinisikan sebagai akhiran konversi tanggal/waktu adalah ilegal dan dicadangkan untuk ekstensi di masa mendatang.
<h4> Bendera </h4>
Tabel berikut ini meringkas bendera yang didukung. y berarti bendera didukung untuk jenis argumen yang ditunjukkan.
<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=" vertikal-align:bottom"> Date/Time <th scope="col" style="vertical-align:bottom"> Description </thead><tbody><tr><th scope="row"> '-' <td style="text-align:center; vertikal-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; vertikal-align:top"> y <td> Hasilnya akan dibenarkan kiri.
<tr><th scope="row"> '#' <td style="text-align:center; vertical-align:top"> y<sup>1</sup><td style="text-align:center; vertikal-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> Hasilnya harus menggunakan bentuk alternatif dependen konversi
<tr><th scope="row"> '+' <td style="text-align:center; vertikal-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> Hasilnya akan selalu menyertakan tanda
<tr><th scope="row"> ' ' <gaya td="text-align:center; vertikal-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> Hasilnya akan menyertakan spasi awal untuk nilai positif
<tr><th scope="row"> '0' <td style="text-align:center; vertikal-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> Hasilnya akan menjadi zero-padded
<tr><th scope="row"> ',' <td style="text-align:center; vertikal-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:top"> y<sup>5</sup<>td style="text-align:center; vertical-align:top"> - <td> Hasilnya akan mencakup pemisah pengelompokan java.text.DecimalFormatSymbols#getGroupingSeparator locale-specific java.text.text.decimalFormatSymbols#getGroupingSeparator grouping separators tr><th scope="row"> '(' <td style="text-align:center; vertikal-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> Hasil akan mengapit angka negatif dalam tanda kurung
</tbody></table>
<sup>1/sup> Tergantung pada definisi Formattable
<.
<sup>2</sup> Hanya untuk 'd'
konversi.
<sup>3</sup> Hanya untuk 'o'
, 'x'
, dan 'X'
konversi.
<sup>4</sup> Untuk 'd'
, 'o'
, , 'x'
dan 'X'
konversi yang diterapkan ke java.math.BigInteger BigInteger
atau 'd'
diterapkan ke byte
, , Byte
, short
, Short
, int
dan Integer
, long
, dan Long
.
<sup>5</sup> Hanya untuk 'e'
, 'E'
, 'f'
, 'g'
, dan 'G'
konversi.
Setiap karakter yang tidak secara eksplisit didefinisikan sebagai bendera ilegal dan dicadangkan untuk ekstensi di masa mendatang.
<Lebar <h4> /h4>
Lebar adalah jumlah minimum karakter yang akan ditulis ke output. Untuk konversi pemisah baris, lebar tidak berlaku; jika disediakan, pengecualian akan dilemparkan.
<h4> Presisi </h4>
Untuk jenis argumen umum, presisi adalah jumlah maksimum karakter yang akan ditulis ke output.
Untuk konversi 'a'
floating-point , , 'A'
'e'
, 'E'
, dan 'f'
presisi adalah jumlah digit setelah titik radix. Jika konversi adalah 'g'
atau 'G'
, maka presisinya adalah jumlah total digit dalam besaran yang dihasilkan setelah pembulatan.
Untuk jenis argumen karakter, integral, dan tanggal/waktu serta persentase dan konversi pemisah baris, presisi tidak berlaku; jika presisi disediakan, pengecualian akan dilemparkan.
<h4> Indeks <Argumen /h4>
Indeks argumen adalah bilangan bulat desimal yang menunjukkan posisi argumen dalam daftar argumen. Argumen pertama dirujuk oleh "1$
", yang kedua oleh "2$
", dll.
Cara lain untuk mereferensikan argumen menurut posisi adalah dengan menggunakan '<'
bendera ('\u003c'
), yang menyebabkan argumen untuk penentu format sebelumnya digunakan kembali. Misalnya, dua pernyataan berikut akan menghasilkan string yang identik:
<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>
Bagian ini dimaksudkan untuk memberikan detail perilaku untuk pemformatan, termasuk kondisi dan pengecualian, jenis data yang didukung, pelokalan, dan interaksi antara bendera, konversi, dan jenis data. Untuk gambaran umum konsep pemformatan, lihat Ringkasan
Setiap karakter yang tidak secara eksplisit didefinisikan sebagai konversi, akhiran konversi tanggal/waktu, atau bendera ilegal dan dicadangkan untuk ekstensi di masa mendatang. Penggunaan karakter seperti itu dalam string format akan menyebabkan UnknownFormatConversionException
atau UnknownFormatFlagsException
dilemparkan.
Jika penentu format berisi lebar atau presisi dengan nilai yang tidak valid atau yang tidak didukung, maka IllegalFormatWidthException
masing-masing atau IllegalFormatPrecisionException
akan dilemparkan.
Jika penentu format berisi karakter konversi yang tidak berlaku untuk argumen yang IllegalFormatConversionException
sesuai, maka akan dilemparkan.
Semua pengecualian yang ditentukan dapat dilemparkan oleh salah format
satu metode Formatter
serta dengan metode kenyamanan apa pun format
seperti String#format(String,Object...) String.format
dan java.io.PrintStream#printf(String,Object...) PrintStream.printf
.
Untuk kategori konversi Umum, Karakter, Angka, Integral , dan Tanggal/Waktu , kecuali ditentukan lain, jika argumen arg adalah null
, maka hasilnya adalah "null
".
Konversi yang ditandai oleh karakter huruf besar (yaitu 'B'
, , , 'X'
'E'
'S'
'H'
'G'
'A'
'C'
, , dan 'T'
) sama dengan yang untuk karakter konversi huruf kecil yang sesuai kecuali bahwa hasilnya dikonversi ke huruf besar sesuai dengan aturan yang berlaku .java.util.Locale Locale
Jika tidak ada lokal eksplisit yang ditentukan, baik pada konstruksi instans atau sebagai parameter untuk pemanggilan metodenya, maka java.util.Locale.Category#FORMAT default locale
digunakan.
<h4>"dgen">General</h4>
Konversi umum berikut dapat diterapkan ke jenis argumen apa pun:
<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> Menghasilkan "true
" atau "false
" seperti yang dikembalikan oleh .Boolean#toString(boolean)
Jika argumen adalah null
, maka hasilnya adalah "false
". Jika argumen adalah boolean
atau Boolean
, maka hasilnya adalah string yang dikembalikan oleh String#valueOf(boolean) String.valueOf()
. Jika tidak, hasilnya adalah "true
".
'#'
Jika bendera diberikan, maka akan FormatFlagsConversionMismatchException
dilemparkan.
<tr><th scope="row" style="vertical-align:top"'B'
><td style="vertical-align:top"'\u0042'
<>td> Varian huruf besar .'b'
<tr><th scope="row" style="vertical-align:top">'h'
<td style="vertical-align:top"'\u0068'
><td> Menghasilkan string yang mewakili nilai kode hash objek.
Hasilnya diperoleh dengan memanggil Integer.toHexString(arg.hashCode())
.
'#'
Jika bendera diberikan, maka akan FormatFlagsConversionMismatchException
dilemparkan.
<tr><th scope="row" style="vertical-align:top"'H'
><td style="vertical-align:top"'\u0048'
<>td> Varian huruf besar .'h'
<tr><th scope="row" style="vertical-align:top">'s'
<td style="vertical-align:top"'\u0073'
><td> Menghasilkan string.
Jika argumen mengimplementasikan Formattable
, maka metodenya Formattable#formatTo formatTo
dipanggil. Jika tidak, hasilnya diperoleh dengan memanggil metode argumen toString()
.
'#'
Jika bendera diberikan dan argumen bukan , Formattable
maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top"'S'
><td style="vertical-align:top"'\u0053'
<>td> Varian huruf besar .'s'
</tbody></table>
Bendera "dFlags"> berikut berlaku untuk konversi umum:
<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 justifies the output. Spasi ('\u0020'
) akan ditambahkan di akhir nilai yang dikonversi sesuai kebutuhan untuk mengisi lebar minimum bidang. Jika lebar tidak disediakan, maka MissingFormatWidthException
akan dilemparkan. Jika bendera ini tidak diberikan maka output akan dibenarkan kanan.
<tr><th scope="row" style="vertical-align:top">'#'
<td style="vertical-align:top"'\u0023'
><td> Memerlukan output menggunakan bentuk alternatif. Definisi formulir ditentukan oleh konversi.
</tbody></table>
Lebar "genWidth">adalah jumlah minimum karakter yang akan ditulis ke output. Jika panjang nilai yang dikonversi kurang dari lebar maka output akan diisi oleh ' '
('\u0020'
) hingga jumlah total karakter sama dengan lebar. Padding berada di sebelah kiri secara default. '-'
Jika bendera diberikan, maka padding akan berada di sebelah kanan. Jika lebar tidak ditentukan maka tidak ada minimum.
Presisi adalah jumlah maksimum karakter yang akan ditulis ke output. Presisi diterapkan sebelum lebar, sehingga output akan dipotong ke precision
karakter bahkan jika lebarnya lebih besar dari presisi. Jika presisi tidak ditentukan, maka tidak ada batas eksplisit pada jumlah karakter.
<h4>"dchar">Character</h4>
Konversi ini dapat diterapkan ke char
dan Character
. Ini juga dapat diterapkan ke jenis byte
, , Byte
, short
dan Short
, int
dan Integer
ketika Character#isValidCodePoint
mengembalikan true
. Jika kembali false
maka IllegalFormatCodePointException
akan dilemparkan.
<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> Formats the argument as a Unicode character as described in Unicode Character Representation. Ini mungkin lebih dari satu 16-bit char
dalam kasus di mana argumen mewakili karakter tambahan.
'#'
Jika bendera diberikan, maka akan FormatFlagsConversionMismatchException
dilemparkan.
<tr><th scope="row" style="vertical-align:top"'C'
><td style="vertical-align:top"'\u0043'
<>td> Varian huruf besar .'c'
</tbody></table>
Bendera '-'
yang ditentukan untuk Konversi umum berlaku. '#'
Jika bendera diberikan, maka akan FormatFlagsConversionMismatchException
dilemparkan.
Lebar didefinisikan sebagai untuk Konversi umum.
Presisi tidak berlaku. Jika presisi ditentukan, maka IllegalFormatPrecisionException
akan dilemparkan.
<h4>"dnum">Numeric</h4>
Konversi numerik dibagi menjadi kategori berikut:
<Ol>
<li>b Byte, Short, Integer, dan Long</b><li><b>BigInteger</b><li><b>Float dan Double</b li><b>><BigDecimal</b></ol><>
Jenis numerik akan diformat sesuai dengan algoritma berikut:
<b>"L10nAlgorithm"> Algoritma< Pelokalan Angka/b>
Setelah digit diperoleh untuk bagian bilangan bulat, bagian pecahan, dan eksponen (sesuai untuk jenis data), transformasi berikut diterapkan:
<Ol>
<li> Setiap karakter digit d dalam string digantikan oleh digit khusus lokal yang dihitung relatif terhadap java.text.DecimalFormatSymbols#getZeroDigit() z nollokal; yaitu d - '0'
+ z.
<li> Jika pemisah desimal ada, pemisah desimal java.text khusus lokal.DecimalFormatSymbols#getDecimalSeparator diganti.
<li> Jika ','
bendera "'\u002c'
L10nGroup"> diberikan, kemudian pemisah pengelompokan java.text.DecimalFormatSymbols#getGroupingSeparator disisipkan dengan memindai bagian bilangan bulat string dari digit paling tidak signifikan hingga paling signifikan dan memasukkan pemisah pada interval yang ditentukan oleh java.text.DecimalFormat#getGroupingSize() lokal.
<li> Jika '0'
bendera diberikan, maka digit nol java.text.DecimalFormatSymbols#getZeroDigit() khusus lokal dimasukkan setelah karakter tanda, jika ada, dan sebelum digit bukan nol pertama, hingga panjang string sama dengan lebar bidang yang diminta.
<li> Jika nilai negatif dan '('
bendera diberikan, maka '('
('\u0028'
) ditambahkan sebelumnya dan ')'
('\u0029'
) ditambahkan.
<li> Jika nilai negatif (atau floating-point negatif nol) dan '('
bendera tidak diberikan, maka '-'
('\u002d'
) diawali.
<li> Jika '+'
bendera diberikan dan nilainya positif atau nol (atau nol positif titik mengambang), maka '+'
('\u002b'
) akan diawali.
</Ol>
Jika nilainya adalah NaN atau infinity positif, string harfiah "NaN" atau "Infinity" masing-masing, akan menjadi output. Jika nilainya negatif tak terbatas, maka outputnya adalah "(Infinity)" jika '('
bendera diberikan jika tidak, outputnya adalah "-Infinity". Nilai-nilai ini tidak dilokalkan.
"dnint"><b> Byte, Short, Integer, dan Long </b>
Konversi berikut dapat diterapkan ke byte
, , Byte
, short
, Short
int
dan Integer
, long
, dan 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> Memformat argumen sebagai bilangan bulat desimal. Algoritma pelokalan diterapkan.
'0'
Jika bendera diberikan dan nilainya negatif, maka nol padding akan terjadi setelah tanda.
'#'
Jika bendera diberikan maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top">'o'
<td style="vertical-align:top"'\u006f'
><td> Formats the argument as an integer in base eight. Tidak ada pelokalan yang diterapkan.
Jika x negatif maka hasilnya akan menjadi nilai yang tidak ditandatangani yang dihasilkan dengan menambahkan 2<sup>n</sup> ke nilai di mana n
adalah jumlah bit dalam jenis seperti yang dikembalikan oleh bidang statis SIZE
dalam byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer, atau Long#SIZE Long classes as appropriate.
'#'
Jika bendera diberikan maka output akan selalu dimulai dengan indikator '0'
radix .
'0'
Jika bendera diberikan maka output akan diisi dengan nol di depan ke lebar bidang mengikuti indikasi tanda.
Jika '('
, '+'
, ' ', atau ','
bendera diberikan maka akan FormatFlagsConversionMismatchException
dilemparkan.
<tr><th scope="row" style="vertical-align:top">'x'
<td style="vertical-align:top"'\u0078'
><td> Formats the argument as an integer in base sixteen. Tidak ada pelokalan yang diterapkan.
Jika x negatif maka hasilnya akan menjadi nilai yang tidak ditandatangani yang dihasilkan dengan menambahkan 2<sup>n</sup> ke nilai di mana n
adalah jumlah bit dalam jenis seperti yang dikembalikan oleh bidang statis SIZE
dalam byte#SIZE Byte, Short#SIZE Short, Integer#SIZE Integer, atau Long#SIZE Long classes as appropriate.
'#'
Jika bendera diberikan maka output akan selalu dimulai dengan indikator "0x"
radix .
'0'
Jika bendera diberikan maka output akan diisi ke lebar bidang dengan nol di depan setelah indikator atau tanda radix (jika ada).
Jika '('
, ' '
, '+'
, atau ','
bendera diberikan maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top"'X'
><td style="vertical-align:top"'\u0058'
<>td> Varian huruf besar .'x'
Seluruh string yang mewakili angka akan dikonversi ke huruf besar String#toUpperCase termasuk 'x'
(jika ada) dan semua digit'f'
- 'a'
heksadesimal ().'\u0061'
- '\u0066'
</tbody></table>
Jika konversi adalah 'o'
, , 'x'
atau 'X'
dan dan dan '0'
'#'
bendera diberikan, maka hasilnya akan berisi indikator radix ('0'
untuk oktal dan "0x"
atau "0X"
untuk heksadesimal), beberapa jumlah nol (berdasarkan lebar), dan nilainya.
'-'
Jika bendera tidak diberikan, maka padding spasi akan terjadi sebelum tanda.
Bendera "intFlags"> berikut berlaku untuk konversi integral numerik:
<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> Memerlukan output untuk menyertakan tanda positif untuk semua angka positif. Jika bendera ini tidak diberikan, maka hanya nilai negatif yang akan menyertakan tanda.
Jika bendera '+'
dan ' '
diberikan maka IllegalFormatFlagsException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top"' '
><td style="vertical-align:top"'\u0020'
<>td> Memerlukan output untuk menyertakan satu spasi ekstra ('\u0020'
) untuk nilai non-negatif.
Jika bendera '+'
dan ' '
diberikan maka IllegalFormatFlagsException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top">'0'
<td style="vertical-align:top"'\u0030'
><td> Memerlukan output untuk di-padding dengan leading java.text.DecimalFormatSymbols#getZeroDigit zeros ke lebar bidang minimum mengikuti tanda atau indikator radix apa pun kecuali saat mengonversi NaN atau infinity. Jika lebar tidak disediakan, maka MissingFormatWidthException
akan dilemparkan.
Jika bendera '-'
dan '0'
diberikan maka IllegalFormatFlagsException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top">','
<td style="vertical-align:top"'\u002c'
><td> Memerlukan output untuk menyertakan java.text.DecimalFormatSymbols#getGroupingSeparator group separator seperti yang dijelaskan di bagian "grup" dari algoritma pelokalan.
<tr><th scope="row" style="vertical-align:top"'('
<>td style="vertical-align:top"><'\u0028'
td> Memerlukan output untuk menambahkan '('
('\u0028'
) dan menambahkan ')'
('\u0029'
) ke nilai negatif.
</tbody></table>
Jika tidak ada bendera "intdFlags"> yang diberikan pemformatan default adalah sebagai berikut:
<Ul>
<li> Output dibenarkan kanan dalam width
<angka negatif li> dimulai dengan '-'
('\u002d'
)
<angka positif li> dan nol tidak menyertakan tanda atau spasi di depan tambahan
<li> Tidak ada pemisah pengelompokan yang disertakan
</Ul>
Lebar "intWidth">adalah jumlah minimum karakter yang akan ditulis ke output. Ini termasuk tanda, digit, pemisah pengelompokan, indikator radix, dan tanda kurung. Jika panjang nilai yang dikonversi kurang dari lebar maka output akan diisi oleh spasi ('\u0020'
) hingga jumlah total karakter sama dengan lebar. Padding berada di sebelah kiri secara default. Jika '-'
bendera diberikan maka padding akan berada di sebelah kanan. Jika lebar tidak ditentukan maka tidak ada minimum.
Presisi tidak berlaku. Jika presisi ditentukan, maka IllegalFormatPrecisionException
akan dilemparkan.
"dnbint"><b> BigInteger </b>
Konversi berikut dapat diterapkan ke 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> Memerlukan output untuk diformat sebagai bilangan bulat desimal. Algoritma pelokalan diterapkan.
'#'
Jika bendera diberikan FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top">'o'
<td style="vertical-align:top"'\u006f'
><td> Memerlukan output untuk diformat sebagai bilangan bulat dalam basis delapan. Tidak ada pelokalan yang diterapkan.
Jika x negatif maka hasilnya akan menjadi nilai bertanda tangan yang dimulai dengan '-'
('\u002d'
). Output yang ditandatangani diizinkan untuk jenis ini karena tidak seperti jenis primitif, tidak dimungkinkan untuk membuat yang setara tanpa mengasumsikan ukuran jenis data eksplisit.
Jika x positif atau nol dan '+'
bendera diberikan maka hasilnya akan dimulai dengan '+'
('\u002b'
).
'#'
Jika bendera diberikan maka output akan selalu dimulai dengan '0'
awalan.
'0'
Jika bendera diberikan maka output akan diisi dengan nol di depan ke lebar bidang mengikuti indikasi tanda.
','
Jika bendera diberikan maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top">'x'
<td style="vertical-align:top"'\u0078'
><td> Memerlukan output untuk diformat sebagai bilangan bulat dalam enam belas dasar. Tidak ada pelokalan yang diterapkan.
Jika x negatif maka hasilnya akan menjadi nilai bertanda tangan yang dimulai dengan '-'
('\u002d'
). Output yang ditandatangani diizinkan untuk jenis ini karena tidak seperti jenis primitif, tidak dimungkinkan untuk membuat yang setara tanpa mengasumsikan ukuran jenis data eksplisit.
Jika x positif atau nol dan '+'
bendera diberikan maka hasilnya akan dimulai dengan '+'
('\u002b'
).
'#'
Jika bendera diberikan maka output akan selalu dimulai dengan indikator "0x"
radix .
'0'
Jika bendera diberikan maka output akan diisi ke lebar bidang dengan nol di depan setelah indikator atau tanda radix (jika ada).
','
Jika bendera diberikan maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top"'X'
><td style="vertical-align:top"'\u0058'
<>td> Varian huruf besar .'x'
Seluruh string yang mewakili angka akan dikonversi ke huruf besar String#toUpperCase termasuk 'x'
(jika ada) dan semua digit'f'
- 'a'
heksadesimal ().'\u0061'
- '\u0066'
</tbody></table>
Jika konversi adalah 'o'
, , 'x'
atau 'X'
dan '#'
'0'
bendera diberikan, hasilnya akan berisi indikator dasar ('0'
untuk oktal dan "0x"
atau "0X"
untuk heksadesimal), beberapa jumlah nol (berdasarkan lebar), dan nilainya.
'0'
Jika bendera diberikan dan nilainya negatif, maka nol padding akan terjadi setelah tanda.
'-'
Jika bendera tidak diberikan, maka padding spasi akan terjadi sebelum tanda.
Semua bendera yang ditentukan untuk Byte, Pendek, Bilangan Bulat, dan Panjang berlaku. Perilaku default ketika tidak ada bendera yang diberikan sama dengan untuk Byte, Pendek, Bilangan Bulat, dan Panjang.
Spesifikasi lebar sama dengan yang didefinisikan untuk Byte, Pendek, Bilangan Bulat, dan Panjang.
Presisi tidak berlaku. Jika presisi ditentukan, maka IllegalFormatPrecisionException
akan dilemparkan.
"dndec"><b> Float dan Double</b>
Konversi berikut dapat diterapkan ke float
, , Float
double
dan 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> Memerlukan output untuk diformat menggunakan "ilmiah">komputerisasi notasi ilmiah. Algoritma pelokalan diterapkan.
Pemformatan besaran m tergantung pada nilainya.
Jika m adalah NaN atau tak terbatas, string harfiah "NaN" atau "Infinity", masing-masing, akan menjadi output. Nilai-nilai ini tidak dilokalkan.
Jika m adalah positif-nol atau negatif-nol, maka eksponen akan menjadi "+00"
.
Jika tidak, hasilnya adalah string yang mewakili tanda dan besaran (nilai absolut) argumen. Pemformatan tanda dijelaskan dalam algoritma pelokalan. Pemformatan besaran m tergantung pada nilainya.
Biarkan n menjadi bilangan bulat unik sehingga 10<sup>n</sup> <= m < 10<sup>n+1</sup>; lalu biarkanmenjadi kuota m dan 10<sup>n</sup> secara matematis sehingga 1 <= a <'e'
), diikuti dengan tanda eksponen, diikuti dengan representasi n sebagai bilangan bulat desimal, seperti yang dihasilkan oleh metode Long#toString(long, int)
, dan nol-padded untuk menyertakan setidaknya dua digit.
Jumlah digit dalam hasil untuk bagian pecahan m atau sama dengan presisi. Jika presisi tidak ditentukan, nilai defaultnya adalah 6
. Jika presisi kurang dari jumlah digit yang akan muncul setelah titik desimal dalam string yang dikembalikan oleh Float#toString(float)
atau Double#toString(double)
masing-masing, maka nilai akan dibulatkan menggunakan algoritma java.math.RoundingMode#HALF_UP round half up. Jika tidak, nol dapat ditambahkan untuk mencapai presisi. Untuk representasi kanonis dari nilai, gunakan Float#toString(float)
atau Double#toString(double)
yang sesuai.
','
Jika bendera diberikan, maka akan FormatFlagsConversionMismatchException
dilemparkan.
<tr><th scope="row" style="vertical-align:top"'E'
><td style="vertical-align:top"'\u0045'
<>td> Varian huruf besar .'e'
Simbol eksponen akan menjadi pemisah eksponen locale-specific java.text.DecimalFormatSymbols#getExponentSeparator (misalnya 'E'
).
<tr><th scope="row" style="vertical-align:top">'g'
<td style="vertical-align:top"'\u0067'
><td> Memerlukan output untuk diformat dalam notasi ilmiah umum seperti yang dijelaskan di bawah ini. Algoritma pelokalan diterapkan.
Setelah membulatkan untuk presisi, pemformatan besaran yang dihasilkan m tergantung pada nilainya.
Jika m lebih besar dari atau sama dengan 10<sup-4></sup> tetapi kurang dari 10<sup>presisi</sup> maka diwakili dalam format desimal.
Jika m kurang dari 10<sup-4></sup> atau lebih besar dari atau sama dengan 10<sup>presisi</sup>, maka itu diwakili dalam notasi ilmiah komputerisasi.
Jumlah total digit signifikan dalam m sama dengan presisi. Jika presisi tidak ditentukan, maka nilai defaultnya adalah 6
. Jika presisinya adalah 0
, maka itu diambil untuk menjadi 1
.
'#'
Jika bendera diberikan maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top"'G'
><td style="vertical-align:top"'\u0047'
<>td> Varian huruf besar .'g'
<tr><th scope="row" style="vertical-align:top"'f'
><td style="vertical-align:top"'\u0066'
<>td> Memerlukan output untuk diformat menggunakan format desimal".> Algoritma pelokalan diterapkan.
Hasilnya adalah string yang mewakili tanda dan besaran (nilai absolut) argumen. Pemformatan tanda dijelaskan dalam algoritma pelokalan. Pemformatan besaran m tergantung pada nilainya.
Jika m NaN atau tak terbatas, string harfiah "NaN" atau "Infinity", masing-masing, akan menjadi output. Nilai-nilai ini tidak dilokalkan.
Besarnya diformat sebagai bagian bilangan bulat m, tanpa nol di depan, diikuti oleh pemisah desimal diikuti oleh satu atau beberapa digit desimal yang mewakili bagian pecahan m.
Jumlah digit dalam hasil untuk bagian pecahan m atau sama dengan presisi. Jika presisi tidak ditentukan, nilai defaultnya adalah 6
. Jika presisi kurang dari jumlah digit yang akan muncul setelah titik desimal dalam string yang dikembalikan oleh Float#toString(float)
atau Double#toString(double)
masing-masing, maka nilai akan dibulatkan menggunakan algoritma java.math.RoundingMode#HALF_UP round half up. Jika tidak, nol dapat ditambahkan untuk mencapai presisi. Untuk representasi kanonis dari nilai, gunakan Float#toString(float)
atau Double#toString(double)
yang sesuai.
<tr><th scope="row" style="vertical-align:top">'a'
<td style="vertical-align:top"'\u0061'
><td> Memerlukan output untuk diformat dalam bentuk eksponensial heksadesimal. Tidak ada pelokalan yang diterapkan.
Hasilnya adalah string yang mewakili tanda dan besaran (nilai absolut) dari argumen x.
Jika x negatif atau nilai negatif-nol, hasilnya akan dimulai dengan '-'
('\u002d'
).
Jika x adalah nilai positif atau nol positif dan '+'
bendera diberikan maka hasilnya akan dimulai dengan '+'
('\u002b'
).
Pemformatan besaran m tergantung pada nilainya.
<Ul>
<li> Jika nilainya adalah NaN atau tak terbatas, string harfiah "NaN" atau "Infinity", masing-masing, akan menjadi output.
<li> Jika m adalah nol maka diwakili oleh string "0x0.0p0"
.
<li> Jika m adalah double
nilai dengan representasi yang dinormalisasi, maka substring digunakan untuk mewakili bidang significand dan eksponen. Significand diwakili oleh karakter "0x1."
diikuti oleh representasi heksadesimal dari sisa significand sebagai pecahan. Eksponen diwakili oleh 'p'
('\u0070'
) diikuti oleh string desimal eksponen yang tidak bias seolah-olah diproduksi dengan memanggil Integer#toString(int) Integer.toString
nilai eksponen. Jika presisi ditentukan, nilai dibulatkan ke jumlah digit heksadesimal yang diberikan.
<li> Jika m adalah double
nilai dengan representasi subnormal maka, kecuali presisi ditentukan untuk berada dalam rentang 1 hingga 12, inklusif, significand diwakili oleh karakter '0x0.'
diikuti oleh representasi heksadesimal dari sisa significand sebagai pecahan, dan eksponen yang diwakili oleh 'p-1022'
. Jika presisi berada dalam interval [1, 12], nilai subnormal dinormalisasi sehingga dimulai dengan karakter '0x1.'
, dibulatkan ke jumlah digit heksadesimal presisi, dan eksponen disesuaikan sesuai. Perhatikan bahwa harus ada setidaknya satu digit bukan nol dalam significand subnormal.
</Ul>
'('
Jika bendera atau ','
diberikan, maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top"'A'
><td style="vertical-align:top"'\u0041'
<>td> Varian huruf besar .'a'
Seluruh string yang mewakili angka akan dikonversi ke huruf besar termasuk 'x'
() dan 'p'
('\u0070'
dan semua digit 'a'
'f'
- heksadesimal ('\u0061'
- '\u0066'
).'\u0078'
</tbody></table>
Semua bendera yang ditentukan untuk Byte, Pendek, Bilangan Bulat, dan Panjang berlaku.
'#'
Jika bendera diberikan, pemisah desimal akan selalu ada.
Jika tidak ada bendera "floatdFlags">yang diberikan pemformatan default adalah sebagai berikut:
<Ul>
<li> Output dibenarkan kanan dalam width
<angka negatif li> dimulai dengan '-'
<angka positif li> dan nol positif tidak menyertakan tanda atau ruang di depan ekstra
<li> Tidak ada pemisah pengelompokan yang disertakan
<li> Pemisah desimal hanya akan muncul jika digit mengikutinya
</Ul>
Lebar "floatDWidth">adalah jumlah minimum karakter yang akan ditulis ke output. Ini termasuk tanda, digit, pemisah pengelompokan, pemisah desimal, simbol eksponensial, indikator radix, tanda kurung, dan string yang mewakili tak terbatas dan NaN sebagaimana berlaku. Jika panjang nilai yang dikonversi kurang dari lebar maka output akan diisi oleh spasi ('\u0020'
) hingga jumlah total karakter sama dengan lebar. Padding berada di sebelah kiri secara default. '-'
Jika bendera diberikan maka padding akan berada di sebelah kanan. Jika lebar tidak ditentukan maka tidak ada minimum.
Jika konversi "floatDPrec">adalah 'e'
, 'E'
atau 'f'
, maka presisinya adalah jumlah digit setelah pemisah desimal. Jika presisi tidak ditentukan, maka diasumsikan sebagai 6
.
Jika konversi adalah 'g'
atau 'G'
, maka presisi adalah jumlah total digit signifikan dalam besaran yang dihasilkan setelah pembulatan. Jika presisi tidak ditentukan, maka nilai defaultnya adalah 6
. Jika presisinya adalah 0
, maka itu diambil untuk menjadi 1
.
Jika konversi adalah 'a'
atau 'A'
, maka presisinya adalah jumlah digit heksadesimal setelah titik radiks. Jika presisi tidak disediakan, maka semua digit seperti yang dikembalikan oleh Double#toHexString(double)
akan menjadi output.
"dnbdec"><b> BigDecimal </b>
Konversi berikut dapat diterapkan java.math.BigDecimal BigDecimal
.
<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> Memerlukan output untuk diformat menggunakan "bscientific">computerized scientific notation. Algoritma pelokalan diterapkan.
Pemformatan besaran m tergantung pada nilainya.
Jika m adalah positif-nol atau negatif-nol, maka eksponen akan menjadi "+00"
.
Jika tidak, hasilnya adalah string yang mewakili tanda dan besaran (nilai absolut) argumen. Pemformatan tanda dijelaskan dalam algoritma pelokalan. Pemformatan besaran m tergantung pada nilainya.
Biarkan n menjadi bilangan bulat unik sehingga 10<sup>n</sup> <= m < 10<sup>n+1</sup>; lalu biarkanmenjadi kuota m dan 10<sup>n</sup> secara matematis sehingga 1 <= a <'e'
eksponen ('\u0065'
), diikuti dengan tanda eksponen, diikuti oleh representasi n sebagai bilangan bulat desimal, seperti yang dihasilkan oleh metode Long#toString(long, int)
, dan nol-padded untuk menyertakan setidaknya dua digit.
Jumlah digit dalam hasil untuk bagian pecahan m atau sama dengan presisi. Jika presisi tidak ditentukan, nilai defaultnya adalah 6
. Jika presisi kurang dari jumlah digit di sebelah kanan titik desimal, maka nilai akan dibulatkan menggunakan algoritma java.math.RoundingMode#HALF_UP round half up. Jika tidak, nol dapat ditambahkan untuk mencapai presisi. Untuk representasi kanonis dari nilai, gunakan BigDecimal#toString()
.
','
Jika bendera diberikan, maka akan FormatFlagsConversionMismatchException
dilemparkan.
<tr><th scope="row" style="vertical-align:top"'E'
><td style="vertical-align:top"'\u0045'
<>td> Varian huruf besar .'e'
Simbol eksponen adalah 'E'
('\u0045'
).
<tr><th scope="row" style="vertical-align:top">'g'
<td style="vertical-align:top"'\u0067'
><td> Memerlukan output untuk diformat dalam notasi ilmiah umum seperti yang dijelaskan di bawah ini. Algoritma pelokalan diterapkan.
Setelah membulatkan untuk presisi, pemformatan besaran yang dihasilkan m tergantung pada nilainya.
Jika m lebih besar dari atau sama dengan 10<sup-4></sup> tetapi kurang dari 10<sup>presisi</sup> maka diwakili dalam format desimal.
Jika m kurang dari 10<sup-4></sup> atau lebih besar dari atau sama dengan 10<sup>presisi</sup>, maka itu diwakili dalam notasi ilmiah komputerisasi.
Jumlah total digit signifikan dalam m sama dengan presisi. Jika presisi tidak ditentukan, maka nilai defaultnya adalah 6
. Jika presisinya adalah 0
, maka itu diambil untuk menjadi 1
.
'#'
Jika bendera diberikan maka FormatFlagsConversionMismatchException
akan dilemparkan.
<tr><th scope="row" style="vertical-align:top"'G'
><td style="vertical-align:top"'\u0047'
<>td> Varian huruf besar .'g'
<tr><th scope="row" style="vertical-align:top"'f'
><td style="vertical-align:top"'\u0066'
<>td> Memerlukan output untuk diformat menggunakan format desimal "bdecimal".> Algoritma pelokalan diterapkan.
Hasilnya adalah string yang mewakili tanda dan besaran (nilai absolut) argumen. Pemformatan tanda dijelaskan dalam algoritma pelokalan. Pemformatan besaran m tergantung pada nilainya.
Besarnya diformat sebagai bagian bilangan bulat m, tanpa nol di depan, diikuti oleh pemisah desimal diikuti oleh satu atau beberapa digit desimal yang mewakili bagian pecahan m.
Jumlah digit dalam hasil untuk bagian pecahan m atau sama dengan presisi. Jika presisi tidak ditentukan, nilai defaultnya adalah 6
. Jika presisi kurang dari jumlah digit di sebelah kanan titik desimal, maka nilai akan dibulatkan menggunakan algoritma java.math.RoundingMode#HALF_UP round half up. Jika tidak, nol dapat ditambahkan untuk mencapai presisi. Untuk representasi kanonis dari nilai, gunakan BigDecimal#toString()
.
</tbody></table>
Semua bendera yang ditentukan untuk Byte, Pendek, Bilangan Bulat, dan Panjang berlaku.
'#'
Jika bendera diberikan, pemisah desimal akan selalu ada.
Perilaku default ketika tidak ada bendera yang diberikan sama dengan untuk Float dan Double.
Spesifikasi lebar dan presisi sama dengan yang didefinisikan untuk Float dan Double.
<h4>"ddt">Date/Time</h4>
Konversi ini dapat diterapkan ke long
, Long
, , Date
Calendar
dan TemporalAccessor TemporalAccessor
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<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> Varian huruf besar .'t'
</tbody></table>
Akhiran karakter konversi tanggal dan waktu berikut didefinisikan untuk 't'
konversi dan 'T'
. Jenisnya mirip dengan tetapi tidak sepenuhnya identik dengan yang ditentukan oleh GNU date
dan POSIX strftime(3c)
. Jenis konversi tambahan disediakan untuk mengakses fungsionalitas khusus Java (misalnya 'L'
untuk milidetik dalam detik).
Karakter konversi berikut digunakan untuk waktu pemformatan:
<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 untuk jam 24 jam, diformat sebagai dua digit dengan nol di depan sesuai kebutuhan yaitu 00 - 23
. 00
sesuai dengan tengah malam.
<tr><th scope="row" style="vertical-align:top"'I'
><td style="vertical-align:top"'\u0049'
<>td> Hour for the 12-hour clock, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu . 01 - 12
01
sesuai dengan jam satu (baik pagi atau sore).
<tr><th scope="row" style="vertical-align:top">'k'
<td style="vertical-align:top">'\u006b'
<td> Hour of the day untuk jam 24 jam, yaitu 0 - 23
. 0
sesuai dengan tengah malam.
<tr><th scope="row" style="vertical-align:top">'l'
<td style="vertical-align:top">'\u006c'
<td> Hour for the 12-hour clock, yaitu 1 - 12
. 1
sesuai dengan jam satu (baik pagi atau sore).
<tr><th scope="row" style="vertical-align:top"'M'
><td style="vertical-align:top"'\u004d'
<>td> Minute dalam jam yang diformat sebagai dua digit dengan nol di depan seperlunya00 - 59
, yaitu .
<tr><th scope="row" style="vertical-align:top">'S'
<td style="vertical-align:top">'\u0053'
<td> Seconds dalam menit, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu 00 - 60
("60
" adalah nilai khusus yang diperlukan untuk mendukung detik lompatan).
<tr><th scope="row" style="vertical-align:top"'L'
><td style="vertical-align:top"'\u004c'
<>td> Millisecond in the second formatted as three digits with leading zeros as necessary, yaitu . 000 - 999
<tr><th scope="row" style="vertical-align:top"'N'
><td style="vertical-align:top"'\u004e'
<>td> Nanosecond in the second, formatted as nine digits with leading zeros as necessary, yaitu . 000000000 - 999999999
Presisi nilai ini dibatasi oleh resolusi sistem operasi atau perangkat keras yang mendasarinya.
<tr><th scope="row" style="vertical-align:top"'p'
><td style="vertical-align:top"'\u0070'
<>td> Locale-specific java.text.DateFormatSymbols#getAmPmStrings penanda pagi atau sore dalam huruf kecil, misalnya.""am
atau "pm
". Penggunaan awalan 'T'
konversi memaksa output ini ke huruf besar. (Perhatikan bahwa 'p'
menghasilkan output huruf kecil. Ini berbeda dari GNU date
dan POSIX strftime(3c)
yang menghasilkan output huruf besar.)
<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, misalnya . -0800
Nilai ini akan disesuaikan seperlunya untuk Daylight Saving Time. Untuk long
, Long
, dan Date
zona waktu yang digunakan adalah zona waktu default TimeZone#getDefault() untuk instans komputer virtual Java ini.
<tr><th scope="row" style="vertical-align:top">'Z'
<td style="vertical-align:top"'\u005a'
><td> A string yang mewakili singkatan untuk zona waktu. Nilai ini akan disesuaikan seperlunya untuk Daylight Saving Time. Untuk long
, Long
, dan Date
zona waktu yang digunakan adalah zona waktu default TimeZone#getDefault() untuk instans komputer virtual Java ini. Lokal Formatter akan menggantikan lokal argumen (jika ada).
<tr><th scope="row" style="vertical-align:top"<'s'
>td style="vertical-align:top"><'\u0073'
td> Seconds since the beginning of the epoch start at 1 January 1970 00:00:00
UTC, yaitu Long.MIN_VALUE/1000
ke .Long.MAX_VALUE/1000
<tr><th scope="row" style="vertical-align:top"<'Q'
>td style="vertical-align:top"'\u004f'
><td> Milidetik sejak awal epoch mulai 1 Januari 1970 00:00:00
UTC, yaitu Long.MIN_VALUE
ke .Long.MAX_VALUE
Presisi nilai ini dibatasi oleh resolusi sistem operasi atau perangkat keras yang mendasarinya.
</tbody></table>
Karakter konversi berikut digunakan untuk memformat tanggal:
<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, misalnya "January"
, . "February"
<tr><th scope="row" style="vertical-align:top">'b'
<td style="vertical-align:top">'\u0062'
<td> Locale-specific java.text.DateFormatSymbols#getShortMonths singkatan nama bulan, misalnya "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 nama lengkap java.text.DateFormatSymbols#getWeekdays day of the week, misalnya "Sunday"
,<"Monday"
tr><th scope="row" style="vertical-align:top"<'a'
>td style="vertical-align:top"<'\u0061'
>td> Locale-specific nama pendek java.text.DateFormatSymbols#getShortWeekdays day dalam seminggu, misalnya "Sun"
, "Mon"
<tr><th scope="row" style="vertical-align:top">'C'
<td style="vertical-align:top"<'\u0043'
>td> Four-digit year divided by 100
, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu 00 - 99
<tr><th scope="row" style="vertical-align:top">'Y'
<td style="vertical-align:top">'\u0059'
<td> Year, diformat ke setidaknya empat digit dengan nol di depan seperlunya, misalnya 0092
sama dengan 92
CE untuk kalender Gregorian.
<tr><th scope="row" style="vertical-align:top"'y'
><td style="vertical-align:top"'\u0079'
<>td> Dua digit terakhir dalam setahun, diformat dengan nol di depan seperlunya, yaitu . 00 - 99
<tr><th scope="row" style="vertical-align:top"'j'
><td style="vertical-align:top"'\u006a'
<>td> Day of year, diformat sebagai tiga digit dengan nol di depan seperlunya, misalnya 001 - 366
untuk kalender Gregorian. 001
sesuai dengan hari pertama dalam setahun.
<tr><th scope="row" style="vertical-align:top"<'m'
>td style="vertical-align:top">'\u006d'
<td> Month, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu 01 - 13
, di mana "01
" adalah bulan pertama dalam setahun dan ("13
" adalah nilai khusus yang diperlukan untuk mendukung kalender bulan).
<tr><th scope="row" style="vertical-align:top">'d'
<td style="vertical-align:top">'\u0064'
<td> Day of month, diformat sebagai dua digit dengan nol di depan seperlunya, yaitu 01 - 31
, di mana "01
" adalah hari pertama dalam sebulan.
<tr><th scope="row" style="vertical-align:top">'e'
<td style="vertical-align:top">'\u0065'
<td> Day of month, diformat sebagai dua digit, yaitu 1 - 31
di mana "1
" adalah hari pertama dalam sebulan.
</tbody></table>
Karakter konversi berikut digunakan untuk memformat komposisi tanggal/waktu umum.
<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"<'T'
>td style="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"
Lokasi penanda pagi atau sore ('%Tp'
) mungkin bergantung pada lokal.
<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"
, misalnya . "Sun Jul 20 16:17:00 EDT 1969"
</tbody></table>
Bendera '-'
yang ditentukan untuk Konversi umum berlaku. '#'
Jika bendera diberikan, maka akan FormatFlagsConversionMismatchException
dilemparkan.
Lebar adalah jumlah minimum karakter yang akan ditulis ke output. Jika panjang nilai yang dikonversi kurang dari width
output akan diisi oleh spasi ('\u0020'
) hingga jumlah total karakter sama dengan lebar. Padding berada di sebelah kiri secara default. '-'
Jika bendera diberikan maka padding akan berada di sebelah kanan. Jika lebar tidak ditentukan maka tidak ada minimum.
Presisi tidak berlaku. Jika presisi ditentukan, maka IllegalFormatPrecisionException
akan dilemparkan.
<h4>"dper">Percent</h4>
Konversi tidak sesuai dengan argumen apa pun.
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"'%'
<>td> Hasilnya adalah literal '%'
()'\u0025'
Lebar adalah jumlah minimum karakter yang akan ditulis ke output termasuk '%'
. Jika panjang nilai yang dikonversi kurang dari width
output akan diisi oleh spasi ('\u0020'
) hingga jumlah total karakter sama dengan lebar. Padding ada di sebelah kiri. Jika lebar tidak ditentukan, maka hanya '%'
outputnya.
Bendera '-'
yang ditentukan untuk Konversi umum berlaku. Jika ada bendera lain yang disediakan, maka FormatFlagsConversionMismatchException
akan dilemparkan.
Presisi tidak berlaku. Jika presisi ditentukan, IllegalFormatPrecisionException
presisi akan dilemparkan.
</tbody></table>
<h4>"dls">Pemisah< Baris/h4>
Konversi tidak sesuai dengan argumen apa pun.
<table class="striped"><caption style="display:none">DTConv</caption><tbody>
<tr><th scope="row" style="vertical-align:top"><'n'
td> pemisah baris khusus platform seperti yang dikembalikan oleh .System#lineSeparator()
</tbody></table>
Bendera, lebar, dan presisi tidak berlaku. Jika ada yang diberikan IllegalFormatFlagsException
, , IllegalFormatWidthException
dan IllegalFormatPrecisionException
, masing-masing akan dilemparkan.
<h4>"dpos">Indeks< Argumen/h4>
Penentu format dapat mereferensikan argumen dengan tiga cara:
<Ul>
<li>Pengindeksan eksplisit digunakan saat penentu format berisi indeks argumen. Indeks argumen adalah bilangan bulat desimal yang menunjukkan posisi argumen dalam daftar argumen. Argumen pertama dirujuk oleh "1$
", yang kedua oleh "2$
", dll. Argumen dapat dirujuk lebih dari sekali.
Contohnya:
<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>Pengindeksan relatif digunakan ketika penentu format berisi '<'
bendera ('\u003c'
) yang menyebabkan argumen untuk penentu format sebelumnya digunakan kembali. Jika tidak ada argumen sebelumnya, maka akan MissingFormatArgumentException
dilemparkan.
<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>
<pengindeksan li>Biasa digunakan ketika penentu format tidak berisi indeks argumen atau '<'
bendera. Setiap penentu format yang menggunakan pengindeksan biasa diberi indeks implisit berurutan ke dalam daftar argumen yang independen dari indeks yang digunakan oleh pengindeksan eksplisit atau relatif.
<blockquote>
formatter.format("%s %s %s %s", "a", "b", "c", "d")
// -> "a b c d"
</blockquote>
</Ul>
Dimungkinkan untuk memiliki string format yang menggunakan semua bentuk pengindeksan, misalnya:
<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>
Jumlah maksimum argumen dibatasi oleh dimensi maksimum array Java seperti yang didefinisikan oleh <kutipan>The Java™ Spesifikasi/kutipan<> Komputer Virtual. Jika indeks argumen tidak sesuai dengan argumen yang tersedia, maka akan MissingFormatArgumentException
dilemparkan.
Jika ada lebih banyak argumen daripada penentu format, argumen tambahan diabaikan.
Kecuali ditentukan lain, meneruskan null
argumen ke metode atau konstruktor apa pun di kelas ini akan menyebabkan NullPointerException
dilemparkan.
Ditambahkan dalam 1.5.
Dokumentasi Java untuk java.util.Formatter
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.
Konstruktor
Formatter() |
Membuat formatter baru. |
Formatter(File) |
Membuat formatter baru dengan file yang ditentukan. |
Formatter(File, Charset, Locale) |
Membuat formatter baru dengan file, charset, dan lokal yang ditentukan. |
Formatter(File, String) |
Membuat formatter baru dengan file dan charset yang ditentukan. |
Formatter(File, String, Locale) |
Membuat formatter baru dengan file, charset, dan lokal yang ditentukan. |
Formatter(IAppendable) |
Membuat formatter baru dengan tujuan yang ditentukan. |
Formatter(IAppendable, Locale) |
Membuat formatter baru dengan tujuan dan lokal yang ditentukan. |
Formatter(Locale) |
Membuat formatter baru dengan lokal yang ditentukan. |
Formatter(PrintStream) |
Membuat formatter baru dengan aliran cetak yang ditentukan. |
Formatter(Stream) |
Membuat formatter baru dengan aliran output yang ditentukan. |
Formatter(Stream, Charset, Locale) |
Membuat formatter baru dengan aliran output, charset, dan lokal yang ditentukan. |
Formatter(Stream, String) |
Membuat formatter baru dengan aliran output dan charset yang ditentukan. |
Formatter(Stream, String, Locale) |
Membuat formatter baru dengan aliran output, charset, dan lokal yang ditentukan. |
Formatter(String) |
Membuat formatter baru dengan nama file yang ditentukan. |
Formatter(String, Charset, Locale) |
Membuat formatter baru dengan nama file, charset, dan lokal yang ditentukan. |
Formatter(String, String) |
Membuat formatter baru dengan nama file dan charset yang ditentukan. |
Formatter(String, String, Locale) |
Membuat formatter baru dengan nama file, charset, dan lokal yang ditentukan. |
Properti
Class |
Mengembalikan kelas runtime dari . |
Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
JniIdentityHashCode |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
JniPeerMembers |
Penerjemah untuk string format gaya cetak. |
PeerReference |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
ThresholdClass |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. (Diperoleh dari Object) |
ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. (Diperoleh dari Object) |
Metode
Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
Close() |
Menutup pemformat ini. |
Dispose() |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
Dispose(Boolean) |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
Flush() |
Bersihkan formatter ini. |
Format(Locale, String, Object[]) |
Menulis string yang diformat ke tujuan objek ini menggunakan string format dan argumen yang ditentukan. |
Format(String, Object[]) |
Menulis string yang diformat ke tujuan objek ini menggunakan string format dan argumen yang ditentukan. |
GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
IoException() |
Mengembalikan yang |
JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
Locale() |
Mengembalikan lokal yang ditetapkan oleh konstruksi formatter ini. |
Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
Out() |
Mengembalikan tujuan untuk output. |
SetHandle(IntPtr, JniHandleOwnership) |
Handle Mengatur properti. (Diperoleh dari Object) |
ToArray<T>() |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
ToString() |
Mengembalikan representasi string objek. (Diperoleh dari Object) |
UnregisterFromRuntime() |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
Wait() |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>. (Diperoleh dari Object) |
Wait(Int64) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu. (Diperoleh dari Object) |
Wait(Int64, Int32) |
Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah real time telah berlalu. (Diperoleh dari Object) |
Implementasi Antarmuka Eksplisit
IJavaPeerable.Disposed() |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
IJavaPeerable.DisposeUnlessReferenced() |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
IJavaPeerable.Finalized() |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
IJavaPeerable.JniManagedPeerState |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
IJavaPeerable.SetPeerReference(JniObjectReference) |
Penerjemah untuk string format gaya cetak. (Diperoleh dari Object) |
Metode Ekstensi
JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Bahasa Umum Android. |
JavaCast<TResult>(IJavaObject) |
Penerjemah untuk string format gaya cetak. |
GetJniTypeName(IJavaPeerable) |
Penerjemah untuk string format gaya cetak. |
FlushAsync(IFlushable) |
Penerjemah untuk string format gaya cetak. |