MessageFormat Kelas

Definisi

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

[Android.Runtime.Register("java/text/MessageFormat", DoNotGenerateAcw=true)]
public class MessageFormat : Java.Text._Format
[<Android.Runtime.Register("java/text/MessageFormat", DoNotGenerateAcw=true)>]
type MessageFormat = class
    inherit _Format
Warisan
Atribut

Keterangan

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral. Gunakan ini untuk membuat pesan yang ditampilkan untuk pengguna akhir.

MessageFormat mengambil sekumpulan objek, memformatnya, lalu menyisipkan string yang diformat ke dalam pola di tempat yang sesuai.

<Strong>Note:</strong>MessageFormat berbeda dari kelas lain Format di mana Anda membuat MessageFormat objek dengan salah satu konstruktornya (bukan dengan getInstance metode pabrik gaya). Metode pabrik tidak diperlukan karena MessageFormat itu sendiri tidak menerapkan perilaku spesifik lokal. Perilaku spesifik lokal apa pun didefinisikan oleh pola yang Anda berikan serta subformat yang digunakan untuk argumen yang disisipkan.

<h2>"patterns">Patterns and Their Interpretation</h2>

MessageFormat menggunakan pola formulir berikut: <blockquote>

<i>MessageFormatPattern:</i>
<i>String</i>
<i>MessageFormatPattern</i> <i>FormatElement</i> <i>String</i>

<i>FormatElement:</i>
                    { <i>ArgumentIndex</i> }
                    { <i>ArgumentIndex</i> , <i>FormatType</i> }
                    { <i>ArgumentIndex</i> , <i>FormatType</i> , <i>FormatStyle</i> }

<i>FormatType: one of </i>
                    number date time choice

<i>FormatStyle:</i>
                    short
                    medium
                    long
                    full
                    integer
                    currency
                    percent
<i>SubformatPattern</i>

</blockquote>

Dalam String, sepasang tanda kutip tunggal dapat digunakan untuk mengutip karakter arbitrer apa pun kecuali tanda kutip tunggal. Misalnya, string "'{0}'" pola mewakili string "{0}", bukan FormatElement. Tanda kutip tunggal itu sendiri harus diwakili oleh tanda kutip '' tunggal ganda di seluruh String. Misalnya, string "'{''}'" pola ditafsirkan sebagai urutan '{ (awal kutipan dan kurung kurawal kiri), '' (tanda kurung kurawal tunggal), dan }' (kurung kurawal kanan dan akhir kutipan), <em>tidak</em>'{' dan '}' (kurung kurung kurawal kiri dan kanan yang dikutip): mewakili string "{'}", <em>tidak</em>"{}".

SubformatPattern ditafsirkan oleh subformat yang sesuai, dan aturan pola yang bergantung pada subformat berlaku. Misalnya, string "{1,number,<u>$'#',##</u>}" pola (SubformatPattern dengan garis bawah) akan menghasilkan format angka dengan tanda pon yang dikutip, dengan hasil seperti: "$#31,45". Lihat dokumentasi setiap Format subkelas untuk detailnya.

Setiap kutipan yang tidak cocok diperlakukan sebagai tertutup di akhir pola yang diberikan. Misalnya, string "'{0pola "} diperlakukan sebagai pola "'{0'"}.

Setiap kurung kurawal dalam pola yang tidak dikutip harus seimbang. Misalnya, "ab {0} de" dan "ab '}' de" merupakan pola yang valid, tetapi "ab {0'}' de", "ab } de" dan "''{''" tidak.

<dl><dt><b>Warning:</b><dd>Aturan untuk menggunakan tanda kutip dalam pola format pesan sayangnya telah terbukti agak membingungkan. Secara khusus, tidak selalu jelas bagi pelokal apakah tanda kutip tunggal perlu digandakan atau tidak. Pastikan untuk menginformasikan pelokalan tentang aturan, dan beri tahu mereka (misalnya, dengan menggunakan komentar dalam file sumber bundel sumber daya) string mana yang akan diproses oleh MessageFormat. Perhatikan bahwa pelokalan mungkin perlu menggunakan tanda kutip tunggal dalam string yang diterjemahkan di mana versi asli tidak memilikinya. </Dl>

Nilai ArgumentIndex adalah bilangan bulat non-negatif yang ditulis menggunakan digit '0' melalui '9', dan mewakili indeks ke dalam arguments array yang diteruskan ke format metode atau array hasil yang dikembalikan oleh parse metode .

Nilai FormatType dan FormatStyle digunakan untuk membuat Format instans untuk elemen format. Tabel berikut menunjukkan bagaimana nilai dipetakan ke Format instans. Kombinasi yang tidak ditampilkan dalam tabel ilegal. SubformatPattern harus berupa string pola yang valid untuk Format subkelas yang digunakan.

<table class="plain"><caption style="display:none">Show how FormatType and FormatStyle values map to Format instances</caption><thead><tr><th scope="col" class="TableHeadingColor">FormatType <th scope="col" class="TableHeadingColor">FormatStyle <th scope="col" class="TableHeadingColor">Subformat Created </thead><tbody><tr><th scope="row" style="text-weight: normal">(tidak ada)<th scope="row" style="text-weight: normal">(none)<td>null<tr><th scope="row" style="text-weight: normal" rowspan=5>number<th scope="row" style="text-weight: normal">(none)<td>NumberFormat#getInstance(Locale) NumberFormat.getInstance(getLocale())<tr><th scope="row" style="text-weight: normal">integer<td>NumberFormat#getIntegerInstance(Locale) NumberFormat.getIntegerInstance(getLocale())<tr><th scope="row" style="text-weight: normal">currency<td>NumberFormat#getCurrencyInstance(Locale) NumberFormat.getCurrencyInstance(getLocale())<tr><th scope="row" style="text-weight: normal">percent<td>NumberFormat#getPercentInstance(Locale) NumberFormat.getPercentInstance(getLocale())<tr><th scope="row" style="text-weight: normal">SubformatPattern <td>newDecimalFormat#DecimalFormat(String,DecimalFormatSymbols) DecimalFormat(subformatPattern,DecimalFormatSymbols#getInstance(Locale) DecimalFormatSymbols.getInstance(getLocale()))<tr><th scope="row" style="text-weight: normal" rowspan=6>date<th scope="row" style="text-weight: normal">(none)<td>DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance(DateFormat#DEFAULT, getLocale())<tr><th scope="row" style="text-weight: normal">short<td>DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance(DateFormat#SHORT, getLocale())<tr><th scope="row" style="text-weight: normal">medium<td>DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance(DateFormat#DEFAULT, getLocale())<tr><th scope="row" style="text-weight: normal">long<td>DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance(DateFormat#LONG, getLocale())<tr><th scope="row" style="text-weight: normal">full<td>DateFormat#getDateInstance(int,Locale) DateFormat.getDateInstance(DateFormat#FULL, getLocale())<tr th>< scope="row" style="text-weight: normal">SubformatPattern<td>newSimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat(subformatPattern, getLocale())<tr><th scope="row" style="text-weight: normal" rowspan=6>time<th scope="row" style="text-weight: normal">(none)<td>DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance(DateFormat#DEFAULT, getLocale())<tr><th scope="row" style="text-weight: normal">short<td>DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance(DateFormat#SHORT, getLocale())<tr><th scope="row" style="text-weight: normal">medium<td>DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance(DateFormat#DEFAULT, getLocale())<tr><th scope="row" style="text-weight: normal">long<td>DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance(DateFormat#LONG, getLocale())<tr><th scope="row" style="text-weight: normal">full<td>DateFormat#getTimeInstance(int,Locale) DateFormat.getTimeInstance(DateFormat#FULL, getLocale())<tr><th scope="row" style="text-weight: normal">SubformatPattern <td>newSimpleDateFormat#SimpleDateFormat(String,Locale) SimpleDateFormat(subformatPattern, getLocale())<tr><th scope="row" style="text-weight: normal">choice<th scope="row" style="text-weight: normal">SubformatPattern <td>newChoiceFormat#ChoiceFormat(String) ChoiceFormat(subformatPattern)</tbody></table>

<h3>Informasi< Penggunaan/h3>

Berikut adalah beberapa contoh penggunaan. Dalam program internasional nyata, pola format pesan dan string statis lainnya, tentu saja akan diperoleh dari bundel sumber daya. Parameter lain akan ditentukan secara dinamis pada runtime.

Contoh pertama menggunakan metode MessageFormat.formatstatis , yang secara internal membuat MessageFormat untuk penggunaan satu kali: <blockquote>

int planet = 7;
            String event = "a disturbance in the Force";

            String result = MessageFormat.format(
                "At {1,time} on {1,date}, there was {2} on planet {0,number,integer}.",
                planet, new Date(), event);

</blockquote> Outputnya adalah: <blockquote>

At 12:30 PM on Jul 3, 2053, there was a disturbance in the Force on planet 7.

</blockquote>

Contoh berikut membuat instans MessageFormat yang dapat digunakan berulang kali: <blockquote>

int fileCount = 1273;
            String diskName = "MyDisk";
            Object[] testArgs = {new Long(fileCount), diskName};

            MessageFormat form = new MessageFormat(
                "The disk \"{1}\" contains {0} file(s).");

            System.out.println(form.format(testArgs));

</blockquote> Output dengan nilai yang berbeda untuk fileCount: <blockquote>

The disk "MyDisk" contains 0 file(s).
            The disk "MyDisk" contains 1 file(s).
            The disk "MyDisk" contains 1,273 file(s).

</blockquote>

Untuk pola yang lebih canggih, Anda dapat menggunakan untuk menghasilkan bentuk yang ChoiceFormat benar untuk tunggal dan jamak: <blockquote>

MessageFormat form = new MessageFormat("The disk \"{1}\" contains {0}.");
            double[] filelimits = {0,1,2};
            String[] filepart = {"no files","one file","{0,number} files"};
            ChoiceFormat fileform = new ChoiceFormat(filelimits, filepart);
            form.setFormatByArgumentIndex(0, fileform);

            int fileCount = 1273;
            String diskName = "MyDisk";
            Object[] testArgs = {new Long(fileCount), diskName};

            System.out.println(form.format(testArgs));

</blockquote> Output dengan nilai yang berbeda untuk fileCount: <blockquote>

The disk "MyDisk" contains no files.
            The disk "MyDisk" contains one file.
            The disk "MyDisk" contains 1,273 files.

</blockquote>

Anda dapat membuat ChoiceFormat secara terprogram, seperti dalam contoh di atas, atau dengan menggunakan pola. Lihat ChoiceFormat untuk informasi lebih lanjut. <blockquote>

{@code
            form.applyPattern(
               "There {0,choice,0#are no files|1#is one file|1<are {0,number,integer} files}.");
            }

</blockquote>

<Strong>Note:</strong> Seperti yang kita lihat di atas, string yang ChoiceFormat dihasilkan oleh in MessageFormat diperlakukan sebagai istimewa; kemunculan '{' digunakan untuk menunjukkan subformat, dan menyebabkan rekursi. Jika Anda membuat dan MessageFormatChoiceFormat secara terprogram (alih-alih menggunakan pola string), maka berhati-hatilah untuk tidak menghasilkan format yang berulang pada dirinya sendiri, yang akan menyebabkan perulangan tak terbatas.

Ketika satu argumen diurai lebih dari sekali dalam string, kecocokan terakhir akan menjadi hasil akhir penguraian. Misalnya, <blockquote>

MessageFormat mf = new MessageFormat("{0,number,#.##}, {0,number,#.#}");
            Object[] objs = {new Double(3.1415)};
            String result = mf.format( objs );
            // result now equals "3.14, 3.1"
            objs = null;
            objs = mf.parse(result, new ParsePosition(0));
            // objs now equals {new Double(3.1)}

</blockquote>

Demikian juga, mengurai dengan objek menggunakan pola yang MessageFormat berisi beberapa kemunculan argumen yang sama akan mengembalikan kecocokan terakhir. Misalnya, <blockquote>

MessageFormat mf = new MessageFormat("{0}, {0}, {0}");
            String forParsing = "x, y, z";
            Object[] objs = mf.parse(forParsing, new ParsePosition(0));
            // result now equals {new String("z")}

</blockquote>

<h3>"synchronization">Synchronization</h3>

Format pesan tidak disinkronkan. Disarankan untuk membuat instans format terpisah untuk setiap utas. Jika beberapa utas mengakses format secara bersamaan, utas tersebut harus disinkronkan secara eksternal.

Ditambahkan dalam 1.1.

Java dokumentasi untuk java.text.MessageFormat.

Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.

Konstruktor

Nama Deskripsi
MessageFormat(IntPtr, JniHandleOwnership)

Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime.

MessageFormat(String, Locale)

Membuat MessageFormat untuk lokal dan pola yang ditentukan.

MessageFormat(String)

Membuat MessageFormat untuk lokal default java.util.Locale.Category#FORMAT FORMAT dan pola yang ditentukan.

Properti

Nama Deskripsi
Class

Mengembalikan kelas runtime dari .Object

(Diperoleh dari Object)
Handle

Handel ke instans Android yang mendasar.

(Diperoleh dari Object)
JniIdentityHashCode

Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop.

(Diperoleh dari Object)
JniManagedPeerState

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
JniPeerMembers

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

Locale

Mendapatkan lokal yang digunakan saat membuat atau membandingkan subformat. -or- Mengatur lokal yang akan digunakan saat membuat atau membandingkan subformat.

PeerReference

Mendapatkan referensi objek JNI untuk peer Java ini.

(Diperoleh dari Object)
ThresholdClass

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

ThresholdType

API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda.

Metode

Nama Deskripsi
ApplyPattern(String)

Menyetel pola yang digunakan oleh format pesan ini.

Clone()

Membuat dan mengembalikan salinan objek ini.

(Diperoleh dari _Format)
Construct(JniObjectReference, JniObjectReferenceOptions)

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
Dispose()

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
Dispose(Boolean)

Merilis sumber daya yang dipegang oleh rekan Java ini.

(Diperoleh dari Object)
DisposeUnlessReferenced()

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
Equals(Object)

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
Equals(Object)

Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini.

(Diperoleh dari Object)
Format(Object, StringBuffer, FieldPosition)

Memformat array objek dan menambahkan MessageFormatpola , dengan elemen format digantikan oleh objek yang diformat, ke yang disediakan StringBuffer.

Format(Object)

Memformat objek untuk menghasilkan string.

(Diperoleh dari _Format)
Format(Object[], StringBuffer, FieldPosition)

Memformat array objek dan menambahkan MessageFormatpola , dengan elemen format digantikan oleh objek yang diformat, ke yang disediakan StringBuffer.

Format(String, Object[])

Memformat array objek dan menambahkan pola kode<MessageFormat/code>, dengan elemen format digantikan oleh objek yang diformat<, ke kode>yang disediakan <StringBuffer>/code<.>

FormatToCharacterIterator(Object)

Memformat Objek yang AttributedCharacterIteratormenghasilkan .

(Diperoleh dari _Format)
GetFormats()

Mendapatkan format yang digunakan untuk elemen format dalam string pola yang ditetapkan sebelumnya.

GetFormatsByArgumentIndex()

Mendapatkan format yang digunakan untuk nilai yang diteruskan ke metode format atau dikembalikan dari parse metode.

GetHashCode()

Mengembalikan nilai kode hash untuk objek .

(Diperoleh dari Object)
JavaFinalize()

Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek.

(Diperoleh dari Object)
Notify()

Membangunkan satu utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
NotifyAll()

Membangunkan semua utas yang menunggu monitor objek ini.

(Diperoleh dari Object)
Parse(String, ParsePosition)

Mengurai string.

Parse(String)

Mengurai teks dari awal string yang diberikan untuk menghasilkan array objek.

ParseObject(String, ParsePosition)

Mengurai teks dari string untuk menghasilkan array objek.

ParseObject(String)

Mengurai teks dari awal string yang diberikan untuk menghasilkan objek.

(Diperoleh dari _Format)
SetFormat(Int32, _Format)

Mengatur format yang akan digunakan untuk elemen format dengan indeks elemen format yang diberikan dalam string pola yang ditetapkan sebelumnya.

SetFormatByArgumentIndex(Int32, _Format)

Mengatur format yang akan digunakan untuk elemen format dalam string pola yang ditetapkan sebelumnya yang menggunakan indeks argumen yang diberikan.

SetFormats(_Format[])

Mengatur format yang akan digunakan untuk elemen format dalam string pola yang ditetapkan sebelumnya.

SetFormatsByArgumentIndex(_Format[])

Mengatur format yang akan digunakan untuk nilai yang diteruskan ke metode format atau dikembalikan dari parse metode.

SetHandle(IntPtr, JniHandleOwnership)

Mengatur properti Handle.

(Diperoleh dari Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
ToArray<T>()

Membuat array terkelola dari pembungkus array Java ini.

(Diperoleh dari Object)
ToPattern()

Mengembalikan pola yang mewakili status format pesan saat ini.

ToString()

Mengembalikan representasi string objek.

(Diperoleh dari Object)
UnregisterFromRuntime()

Membatalkan pendaftaran peer Java ini dari runtime interop.

(Diperoleh dari Object)
Wait()

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <diberitahu></em> atau <em>terganggu</em>.

(Diperoleh dari Object)
Wait(Int64, Int32)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)
Wait(Int64)

Menyebabkan utas saat ini menunggu sampai terbangun, biasanya dengan <>diberitahu</em> atau <em>terganggu</em>, atau sampai sejumlah waktu nyata berlalu.

(Diperoleh dari Object)

Implementasi Antarmuka Eksplisit

Nama Deskripsi
IJavaPeerable.Disposed()

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
IJavaPeerable.Finalized()

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari JavaObject)
IJavaPeerable.UnregisterFromRuntime()

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

(Diperoleh dari _Format)

Metode Ekstensi

Nama Deskripsi
GetJniTypeName(IJavaPeerable)

Mendapatkan nama JNI dari jenis instans self.

JavaAs<TResult>(IJavaPeerable)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

JavaCast<TResult>(IJavaObject)

Melakukan konversi jenis yang diperiksa runtime Android.

JavaCast<TResult>(IJavaObject)

MessageFormat menyediakan sarana untuk menghasilkan pesan yang digabungkan dengan cara bahasa netral.

TryJavaCast<TResult>(IJavaPeerable, TResult)

Cobalah untuk memaksa self untuk mengetik TResult, memeriksa bahwa paksaan valid di sisi Java.

Berlaku untuk