BreakIterator 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.
Kelas menerapkan BreakIterator metode untuk menemukan lokasi batas dalam teks.
[Android.Runtime.Register("java/text/BreakIterator", DoNotGenerateAcw=true)]
public abstract class BreakIterator : Java.Lang.Object, IDisposable, Java.Lang.ICloneable
[<Android.Runtime.Register("java/text/BreakIterator", DoNotGenerateAcw=true)>]
type BreakIterator = class
inherit Object
interface ICloneable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- Warisan
- Atribut
- Penerapan
Keterangan
Kelas menerapkan BreakIterator metode untuk menemukan lokasi batas dalam teks. Instans BreakIterator mempertahankan posisi saat ini dan memindai teks yang mengembalikan indeks karakter tempat batas terjadi. Secara internal, BreakIterator memindai teks menggunakan CharacterIterator, dan dengan demikian dapat memindai teks yang disimpan oleh objek apa pun yang menerapkan protokol tersebut.
StringCharacterIterator digunakan untuk memindai String objek yang diteruskan ke setText. Objek CharacterIterator tidak boleh dimodifikasi setelah diteruskan ke setText. Jika teks dalam CharacterIterator objek diubah, pemanggil harus mengatur ulang BreakIterator dengan memanggil setText.
Anda menggunakan metode pabrik yang disediakan oleh kelas ini untuk membuat instans berbagai jenis iterator pemutusan. Secara khusus, gunakan getWordInstance, getLineInstance, getSentenceInstance, dan getCharacterInstance untuk membuat BreakIteratoryang melakukan analisis batas kata, baris, kalimat, dan karakter masing-masing. Satu BreakIterator hanya dapat bekerja pada satu unit (kata, baris, kalimat, dan sebagainya). Anda harus menggunakan iterator yang berbeda untuk setiap analisis batas unit yang ingin Anda lakukan.
Analisis batas garis "baris"> menentukan di mana string teks dapat dipecah saat pembungkusan garis. Mekanisme menangani tanda baca dan kata-kata terpencil dengan benar. Pemisah baris aktual juga perlu mempertimbangkan lebar garis yang tersedia dan ditangani oleh perangkat lunak tingkat yang lebih tinggi.
Analisis batas kalimat "kalimat"> memungkinkan pemilihan dengan interpretasi periode yang benar dalam angka dan singkatan, dan tanda baca berikutnya seperti tanda kutip dan tanda kurung.
Analisis batas Word "word"> digunakan oleh fungsi pencarian dan penggantian, serta dalam aplikasi pengeditan teks yang memungkinkan pengguna untuk memilih kata-kata dengan klik ganda. Word pilihan menyediakan interpretasi tanda baca yang benar dalam dan kata-kata berikut. Karakter yang bukan bagian dari kata, seperti simbol atau tanda baca, memiliki pemisah kata di kedua sisi.
Analisis batas karakter "karakter"> memungkinkan pengguna berinteraksi dengan karakter seperti yang mereka harapkan, misalnya, saat memindahkan kursor melalui string teks. Analisis batas karakter menyediakan navigasi yang benar melalui string karakter, terlepas dari bagaimana karakter disimpan. Batas yang dikembalikan mungkin berupa karakter tambahan, menggabungkan urutan karakter, atau kluster ligatur. Misalnya, karakter beraksen mungkin disimpan sebagai karakter dasar dan tanda diakritik. Apa yang dianggap pengguna sebagai karakter dapat berbeda antar bahasa.
Instans BreakIterator yang dikembalikan oleh metode pabrik kelas ini dimaksudkan untuk digunakan hanya dengan bahasa alami, bukan untuk teks bahasa pemrograman. Namun dimungkinkan untuk menentukan subkelas yang membuat token bahasa pemrograman.
< >Contoh kuat</kuat>:
Membuat dan menggunakan batas teks: <blockquote>
public static void main(String args[]) {
if (args.length == 1) {
String stringToExamine = args[0];
//print each word in order
BreakIterator boundary = BreakIterator.getWordInstance();
boundary.setText(stringToExamine);
printEachForward(boundary, stringToExamine);
//print each sentence in reverse order
boundary = BreakIterator.getSentenceInstance(Locale.US);
boundary.setText(stringToExamine);
printEachBackward(boundary, stringToExamine);
printFirst(boundary, stringToExamine);
printLast(boundary, stringToExamine);
}
}
</blockquote>
Cetak setiap elemen secara berurutan: <blockquote>
public static void printEachForward(BreakIterator boundary, String source) {
int start = boundary.first();
for (int end = boundary.next();
end != BreakIterator.DONE;
start = end, end = boundary.next()) {
System.out.println(source.substring(start,end));
}
}
</blockquote>
Cetak setiap elemen dalam urutan terbalik: <blockquote>
public static void printEachBackward(BreakIterator boundary, String source) {
int end = boundary.last();
for (int start = boundary.previous();
start != BreakIterator.DONE;
end = start, start = boundary.previous()) {
System.out.println(source.substring(start,end));
}
}
</blockquote>
Cetak elemen pertama: <blockquote>
public static void printFirst(BreakIterator boundary, String source) {
int start = boundary.first();
int end = boundary.next();
System.out.println(source.substring(start,end));
}
</blockquote>
Cetak elemen terakhir: <blockquote>
public static void printLast(BreakIterator boundary, String source) {
int end = boundary.last();
int start = boundary.previous();
System.out.println(source.substring(start,end));
}
</blockquote>
Cetak elemen pada posisi yang ditentukan: <blockquote>
public static void printAt(BreakIterator boundary, int pos, String source) {
int end = boundary.following(pos);
int start = boundary.previous();
System.out.println(source.substring(start,end));
}
</blockquote>
Temukan kata berikutnya: <blockquote>
{@code
public static int nextWordStartAfter(int pos, String text) {
BreakIterator wb = BreakIterator.getWordInstance();
wb.setText(text);
int last = wb.following(pos);
int current = wb.next();
while (current != BreakIterator.DONE) {
for (int p = last; p < current; p++) {
if (Character.isLetter(text.codePointAt(p)))
return last;
}
last = current;
current = wb.next();
}
return BreakIterator.DONE;
}
}
(Iterator yang dikembalikan oleh BreakIterator.getWordInstance() unik karena posisi jeda yang dikembalikannya tidak mewakili awal dan akhir dari hal yang diulang. Artinya, iterator pemutus kalimat mengembalikan pemutusan yang masing-masing mewakili akhir dari satu kalimat dan awal kalimat berikutnya. Dengan iterator pemecahan kata, karakter di antara dua batas mungkin berupa kata, atau mungkin tanda baca atau spasi putih di antara dua kata. Kode di atas menggunakan heuristik sederhana untuk menentukan batas mana yang merupakan awal kata: Jika karakter antara batas ini dan batas berikutnya mencakup setidaknya satu huruf (ini bisa menjadi huruf alfabet, ideograf CJK, suku kata Hangul, karakter Kana, dll.), maka teks antara batas ini dan yang berikutnya adalah kata; jika tidak, itu adalah materi antara kata-kata.) </blockquote>
Ditambahkan dalam 1.1.
Java dokumentasi untuk java.text.BreakIterator.
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 |
|---|---|
| BreakIterator() |
Pembangun. |
| BreakIterator(IntPtr, JniHandleOwnership) |
Konstruktor yang digunakan saat membuat representasi terkelola objek JNI; dipanggil oleh runtime. |
Bidang
| Nama | Deskripsi |
|---|---|
| Done |
DONE dikembalikan oleh previous(), next(), next(int), preceding(int) dan following(int) ketika batas teks pertama atau terakhir telah tercapai. |
Properti
| Nama | Deskripsi |
|---|---|
| CharacterInstance |
Mengembalikan instans baru |
| Class |
Mengembalikan kelas runtime dari . |
| 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 |
Kelas menerapkan |
| JniPeerMembers |
Kelas menerapkan |
| LineInstance |
Mengembalikan instans baru |
| PeerReference |
Mendapatkan referensi objek JNI untuk peer Java ini. (Diperoleh dari Object) |
| SentenceInstance |
Mengembalikan instans baru |
| Text |
Mengembalikan yang |
| 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. |
| WordInstance |
Mengembalikan instans baru |
Metode
| Nama | Deskripsi |
|---|---|
| Clone() |
Buat salinan iterator ini |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Kelas menerapkan |
| Current() |
Mengembalikan indeks karakter dari batas teks yang terakhir dikembalikan oleh next(), next(int), previous(), first(), last(), following(int) atau preceding(int). |
| 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() |
Kelas menerapkan |
| Equals(Object) |
Kelas menerapkan |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| First() |
Mengembalikan batas pertama. |
| Following(Int32) |
Mengembalikan batas pertama setelah offset karakter yang ditentukan. |
| GetAvailableLocales() |
Mengembalikan array semua lokal yang |
| GetCharacterInstance(Locale) |
Mengembalikan instans baru |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| GetLineInstance(Locale) |
Mengembalikan instans baru |
| GetSentenceInstance(Locale) |
Mengembalikan instans baru |
| GetWordInstance(Locale) |
Mengembalikan instans baru |
| IsBoundary(Int32) |
Mengembalikan true jika offset karakter yang ditentukan adalah batas teks. |
| JavaFinalize() |
Dipanggil oleh pengumpul sampah pada objek ketika pengumpulan sampah menentukan bahwa tidak ada lagi referensi ke objek. (Diperoleh dari Object) |
| Last() |
Mengembalikan batas terakhir. |
| Next() |
Mengembalikan batas mengikuti batas saat ini. |
| Next(Int32) |
Mengembalikan batas ke-n dari batas saat 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) |
| Preceding(Int32) |
Mengembalikan batas terakhir sebelum offset karakter yang ditentukan. |
| Previous() |
Mengembalikan batas sebelum batas saat ini. |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Kelas menerapkan |
| SetText(String) |
Atur string teks baru yang akan dipindai. |
| ToArray<T>() |
Membuat array terkelola dari pembungkus array Java ini. (Diperoleh dari Object) |
| 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() |
Kelas menerapkan |
| IJavaPeerable.Finalized() |
Kelas menerapkan |
| IJavaPeerable.JniObjectReferenceControlBlock |
Kelas menerapkan |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Kelas menerapkan |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Kelas menerapkan |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Kelas menerapkan |
| IJavaPeerable.UnregisterFromRuntime() |
Kelas menerapkan |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Kelas menerapkan |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |