Scanner 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.
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler.
[Android.Runtime.Register("java/util/Scanner", DoNotGenerateAcw=true)]
public sealed class Scanner : Java.Lang.Object, IDisposable, Java.IO.ICloseable, Java.Util.IIterator
[<Android.Runtime.Register("java/util/Scanner", DoNotGenerateAcw=true)>]
type Scanner = class
inherit Object
interface ICloseable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IIterator
- Warisan
- Atribut
- Penerapan
Keterangan
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler.
Memecah Scanner inputnya menjadi token menggunakan pola pemisah, yang secara default cocok dengan spasi kosong. Token yang dihasilkan kemudian dapat dikonversi menjadi nilai dari berbagai jenis menggunakan berbagai next metode.
Misalnya, kode ini memungkinkan pengguna untuk membaca angka dari System.in: <blockquote>
{@code
Scanner sc = new Scanner(System.in);
int i = sc.nextInt();
}
</blockquote>
Sebagai contoh lain, kode ini memungkinkan long jenis untuk ditetapkan dari entri dalam file myNumbers: <blockquote>
{@code
Scanner sc = new Scanner(new File("myNumbers"));
while (sc.hasNextLong()) {
long aLong = sc.nextLong();
}
}
</blockquote>
Pemindai juga dapat menggunakan pemisah selain spasi kosong. Contoh ini membaca beberapa item dalam dari string: <blockquote>
{@code
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input).useDelimiter("\\s*fish\\s*");
System.out.println(s.nextInt());
System.out.println(s.nextInt());
System.out.println(s.next());
System.out.println(s.next());
s.close();
}
</blockquote>
mencetak output berikut: <blockquote>
{@code
1
2
red
blue
}
</blockquote>
Output yang sama dapat dihasilkan dengan kode ini, yang menggunakan ekspresi reguler untuk mengurai keempat token sekaligus: <blockquote>
{@code
String input = "1 fish 2 fish red fish blue fish";
Scanner s = new Scanner(input);
s.findInLine("(\\d+) fish (\\d+) fish (\\w+) fish (\\w+)");
MatchResult result = s.match();
for (int i=1; i<=result.groupCount(); i++)
System.out.println(result.group(i));
s.close();
}
</blockquote>
Pemisah default ">pemisah spasi default yang digunakan oleh pemindai seperti yang dikenali oleh Character#isWhitespace(char) Character.isWhitespace(). Metode ini #reset reset() akan mengatur ulang nilai pemisah pemindai ke pemisah spasi putih default terlepas dari apakah sebelumnya diubah.
Operasi pemindaian dapat memblokir menunggu input.
Metode #next dan #hasNext dan metode pendampingnya (seperti #nextInt dan #hasNextInt) terlebih dahulu melewati input apa pun yang cocok dengan pola pemisah, lalu mencoba mengembalikan token berikutnya. Kedua hasNext() metode dan next() dapat memblokir menunggu input lebih lanjut.
hasNext() Apakah blok metode tidak memiliki koneksi ke apakah metode terkait next() akan diblokir atau tidak. Metode ini #tokens juga dapat memblokir menunggu input.
Metode #findInLine findInLine(), #findWithinHorizon findWithinHorizon(), #skip skip(), dan #findAll findAll() beroperasi secara independen dari pola pemisah. Metode ini akan mencoba mencocokkan pola yang ditentukan tanpa memperhatikan pemisah dalam input dan dengan demikian dapat digunakan dalam keadaan khusus di mana pemisah tidak relevan. Metode ini dapat memblokir menunggu lebih banyak input.
Ketika pemindai melempar InputMismatchException, pemindai tidak akan melewati token yang menyebabkan pengecualian, sehingga dapat diambil atau dilewati melalui beberapa metode lain.
Tergantung pada jenis pola pembatas, token kosong dapat dikembalikan. Misalnya, pola "\\s+" tidak akan mengembalikan token kosong karena cocok dengan beberapa instans pemisah. Pola pembatas "\\s" dapat mengembalikan token kosong karena hanya melewati satu spasi pada satu waktu.
Pemindai dapat membaca teks dari objek apa pun yang mengimplementasikan java.lang.Readable antarmuka. Jika pemanggilan metode yang dapat java.lang.Readable#read read() dibaca yang mendasar java.io.IOException melemparkan maka pemindai mengasumsikan bahwa akhir input telah tercapai. Yang terbaru IOException yang dilemparkan oleh yang mendasar dapat dibaca dapat diambil melalui #ioException metode .
Scanner Ketika ditutup, sumber input akan ditutup jika sumber mengimplementasikan java.io.Closeable antarmuka.
Scanner Tidak aman untuk penggunaan multithread tanpa sinkronisasi eksternal.
Kecuali disebutkan lain, meneruskan null parameter ke metode apa pun yang Scanner akan menyebabkan dilemparkan NullPointerException .
Pemindai akan default untuk menafsirkan angka sebagai desimal kecuali radiks yang berbeda telah diatur dengan menggunakan #useRadix metode . Metode ini #reset akan mengatur ulang nilai radiks pemindai terlepas 10 dari apakah sebelumnya diubah.
<h2> "localized-numbers">Localized numbers</h2>
Instans kelas ini mampu memindai angka dalam format standar serta dalam format lokal pemindai. Lokal awal "lokal awal"> pemindai adalah nilai yang dikembalikan oleh java.util.Locale#getDefault(Locale.Category) Locale.getDefault(Locale.Category.FORMAT) metode ; dapat diubah melalui #useLocale useLocale() metode . Metode ini #reset akan mengatur ulang nilai lokal pemindai ke lokal awal terlepas dari apakah sebelumnya diubah.
Format yang dilokalkan didefinisikan dalam hal parameter berikut, yang untuk lokal tertentu diambil dari objek lokal tersebut java.text.DecimalFormat DecimalFormat , df, dan objek dannya java.text.DecimalFormatSymbols DecimalFormatSymbols , dfs.
<blockquote><dl><dt>LocalGroupSeparator <dd>Karakter yang digunakan untuk memisahkan ribuan grup, yaitu, dfs.java.text.DecimalFormatSymbols#getGroupingSeparator getGroupingSeparator()<dt>LocalDecimalSeparator <dd>Karakter yang digunakan untuk titik desimal, yaitu, dfs.java.text.DecimalFormatSymbols#getDecimalSeparator getDecimalSeparator()<dt>LocalPositivePrefix <dd>String yang muncul sebelum angka positif (mungkin kosong), yaitu, df.java.text.DecimalFormat#getPositivePrefix getPositivePrefix()<dt>LocalPositiveSuffix <dd>String yang muncul setelah angka positif (mungkin kosong), yaitu, df.java.text.DecimalFormat#getPositiveSuffix getPositiveSuffix()<dt>LocalNegativePrefix <dd>String yang muncul sebelum angka negatif (mungkin kosong), yaitu, df.java.text.DecimalFormat#getNegativePrefix getNegativePrefix()<dt>LocalNegativeSuffix <dd>String yang muncul setelah angka negatif (mungkin kosong), yaitu, df.java.text.DecimalFormat#getNegativeSuffix getNegativeSuffix()<dt>LocalNaN <dd>String yang mewakili not-a-number untuk nilai floating-point, yaitu, dfs.java.text.DecimalFormatSymbols#getNaN getNaN()<dt>LocalInfinity <dd>String yang mewakili tak terbatas untuk nilai floating-point, yaitu, dfs.java.text.DecimalFormatSymbols#getInfinity getInfinity()</dl></blockquote>
<h3> "number-sintaks">Sintaks angka</h3>
String yang dapat diurai sebagai angka oleh instans kelas ini ditentukan dalam hal tata bahasa ekspresi reguler berikut, di mana Rmax adalah digit tertinggi dalam radiks yang digunakan (misalnya, Rmax adalah 9 dalam basis 10).
<dl><dt>NonAsciiDigit: <dd>Karakter non-ASCII c yang java.lang.Character#isDigit Character.isDigit(c) returns -nya; true
<dt>Non0Digit: <dd>[1-Rmax] |NonASCIIDigit dt<>Digit: <dd>[0-Rmax] |NonASCIIDigit dt<>GroupedNumeral: <dd>( Non0DigitDigit Digit??<dd> ( Digit Digit)+ )<LocalGroupSeparator dt>Angka: <dd>( (Digit+ ) |GroupedNumeral)<dt>"Integer-regex"><i>Integer</i>:<dd>( [-+]? (Numeral) )<dd>|LocalPositivePrefixNumeralLocalPositiveSuffix<dd>|LocalNegativePrefixNumeralLocalNegativeSuffix<dt>DecimalNumeral: <dd>Numeral<dd>|NumeralLocalDecimalSeparatorDigit*<dd>|LocalDecimalSeparatorDigit+<dt>Exponent: <dd>( [eE] [+-]?Digit+ )<dt>"Decimal-regex"><i>Decimal</i>:<dd>( [-+]?Eksponen? )<dd>|LocalPositivePrefixDecimalNumeralLocalPositiveSuffixExponent?<dd>|LocalNegativePrefixDecimalNumeralLocalNegativeSuffixExponent?<dt>HexFloat: <dd>[-+]? 0[xX][0-9a-fA-F]*\.[0-9a-fA-F]+ ([pP][-+]?[0-9]+)?<dt>NonNumber: <dd>NaN |LocalNan| Infinity |LocalInfinity<dt>SignedNonNumber: <dd>( [-+]?NonNumber)<dd>|LocalPositivePrefixNonNumberLocalPositiveSuffix<dd>|LocalNegativePrefixNonNumberLocalNegativeSuffix<dt>"Float-regex"><i>Float</i>: <dd>Decimal|HexFloat|SignedNonNumber</dl>
Spasi kosong tidak signifikan dalam ekspresi reguler di atas.
Ditambahkan dalam 1.5.
Java dokumentasi untuk java.util.Scanner.
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 |
|---|---|
| Scanner(File, Charset) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
| Scanner(File, String) |
Membuat baru |
| Scanner(File) |
Membuat baru |
| Scanner(IPath, Charset) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
| Scanner(IPath, String) |
Membuat baru |
| Scanner(IPath) |
Membuat baru |
| Scanner(IReadable) |
Membuat baru |
| Scanner(IReadableByteChannel, Charset) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
| Scanner(IReadableByteChannel, String) |
Membuat baru |
| Scanner(IReadableByteChannel) |
Membuat baru |
| Scanner(Stream, Charset) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
| Scanner(Stream, String) |
Membuat baru |
| Scanner(Stream) |
Membuat baru |
| Scanner(String) |
Membuat baru |
Properti
| Nama | Deskripsi |
|---|---|
| Class |
Mengembalikan kelas runtime dari . |
| Handle |
Handel ke instans Android yang mendasar. (Diperoleh dari Object) |
| HasNext |
Mengembalikan true jika pemindai ini memiliki token lain dalam inputnya. |
| HasNextBigDecimal |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai |
| HasNextBigInteger |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai |
| HasNextBoolean |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai boolean menggunakan pola tidak peka huruf besar/kecil yang dibuat dari string "true|false". |
| HasNextByte |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai byte dalam radix default menggunakan |
| HasNextDouble |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai ganda menggunakan |
| HasNextFloat |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai float menggunakan |
| HasNextInt |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai int dalam radix default menggunakan |
| HasNextLine |
Mengembalikan true jika ada baris lain dalam input pemindai ini. |
| HasNextLong |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai panjang dalam radix default menggunakan |
| HasNextShort |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai pendek dalam radix default menggunakan |
| JniIdentityHashCode |
Mendapatkan kode hash identitas yang ditetapkan ke Java peer ini oleh runtime interop. (Diperoleh dari Object) |
| JniManagedPeerState |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| JniPeerMembers |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
| 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. (Diperoleh dari Object) |
| ThresholdType |
API ini mendukung infrastruktur Mono untuk Android dan tidak dimaksudkan untuk digunakan langsung dari kode Anda. (Diperoleh dari Object) |
Metode
| Nama | Deskripsi |
|---|---|
| Clone() |
Membuat dan mengembalikan salinan objek ini. (Diperoleh dari Object) |
| Close() |
Menutup pemindai ini. |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| Delimiter() |
Mengembalikan yang |
| 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() |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| Equals(Object) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| Equals(Object) |
Menunjukkan apakah beberapa objek lain "sama dengan" yang satu ini. (Diperoleh dari Object) |
| FindInLine(Pattern) |
Mencoba menemukan kemunculan berikutnya dari pola yang ditentukan mengabaikan pemisah. |
| FindInLine(String) |
Mencoba menemukan kemunculan pola berikutnya yang dibangun dari string yang ditentukan, mengabaikan pemisah. |
| FindWithinHorizon(Pattern, Int32) |
Mencoba menemukan kemunculan pola yang ditentukan berikutnya. |
| FindWithinHorizon(String, Int32) |
Mencoba menemukan kemunculan pola berikutnya yang dibangun dari string yang ditentukan, mengabaikan pemisah. |
| GetHashCode() |
Mengembalikan nilai kode hash untuk objek . (Diperoleh dari Object) |
| InvokeHasNext(Pattern) |
Mengembalikan true jika token lengkap berikutnya cocok dengan pola yang ditentukan. |
| InvokeHasNext(String) |
Mengembalikan true jika token berikutnya cocok dengan pola yang dibangun dari string yang ditentukan. |
| InvokeHasNextBigInteger(Int32) |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai |
| InvokeHasNextByte(Int32) |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai byte dalam radix yang ditentukan menggunakan |
| InvokeHasNextInt(Int32) |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai int dalam radix yang ditentukan menggunakan |
| InvokeHasNextLong(Int32) |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai panjang dalam radix yang ditentukan menggunakan |
| InvokeHasNextShort(Int32) |
Mengembalikan true jika token berikutnya dalam input pemindai ini dapat ditafsirkan sebagai nilai pendek dalam radix yang ditentukan menggunakan |
| 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 pemindai ini. |
| Match() |
Mengembalikan hasil kecocokan dari operasi pemindaian terakhir yang dilakukan oleh pemindai ini. |
| Next() |
Menemukan dan mengembalikan token lengkap berikutnya dari pemindai ini. |
| Next(Pattern) |
Mengembalikan token berikutnya jika cocok dengan pola yang ditentukan. |
| Next(String) |
Mengembalikan token berikutnya jika cocok dengan pola yang dibangun dari string yang ditentukan. |
| NextBigDecimal() |
Memindai token berikutnya dari input sebagai |
| NextBigInteger() |
Memindai token berikutnya dari input sebagai |
| NextBigInteger(Int32) |
Memindai token berikutnya dari input sebagai |
| NextBoolean() |
Memindai token berikutnya dari input ke dalam nilai boolean dan mengembalikan nilai tersebut. |
| NextByte() |
Memindai token berikutnya dari input sebagai |
| NextByte(Int32) |
Memindai token berikutnya dari input sebagai |
| NextDouble() |
Memindai token berikutnya dari input sebagai |
| NextFloat() |
Memindai token berikutnya dari input sebagai |
| NextInt() |
Memindai token berikutnya dari input sebagai |
| NextInt(Int32) |
Memindai token berikutnya dari input sebagai |
| NextLine() |
Memajukan pemindai ini melewati baris saat ini dan mengembalikan input yang dilewati. |
| NextLong() |
Memindai token berikutnya dari input sebagai |
| NextLong(Int32) |
Memindai token berikutnya dari input sebagai |
| NextShort() |
Memindai token berikutnya dari input sebagai |
| NextShort(Int32) |
Memindai token berikutnya dari input sebagai |
| Notify() |
Membangunkan satu utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| NotifyAll() |
Membangunkan semua utas yang menunggu monitor objek ini. (Diperoleh dari Object) |
| Radix() |
Mengembalikan radix default pemindai ini. |
| Remove() |
Operasi hapus tidak didukung oleh implementasi ini dari |
| Reset() |
Mereset pemindai ini. |
| SetHandle(IntPtr, JniHandleOwnership) |
Mengatur properti Handle. (Diperoleh dari Object) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| Skip(Pattern) |
Lewati input yang cocok dengan pola yang ditentukan, mengabaikan pemisah. |
| Skip(String) |
Melompati input yang cocok dengan pola yang dibangun dari string yang ditentukan. |
| 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) |
| UseDelimiter(Pattern) |
Mengatur pola pembatas pemindai ini ke pola yang ditentukan. |
| UseDelimiter(String) |
Mengatur pola pembatas pemindai ini ke pola yang dibangun dari yang ditentukan |
| UseLocale(Locale) |
Mengatur lokal pemindai ini ke lokal yang ditentukan. |
| UseRadix(Int32) |
Mengatur radiks default pemindai ini ke radix yang ditentukan. |
| 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 |
|---|---|
| IIterator.Next() |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
| IJavaPeerable.Disposed() |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| IJavaPeerable.Finalized() |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. (Diperoleh dari JavaObject) |
| IJavaPeerable.UnregisterFromRuntime() |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
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) |
Pemindai teks sederhana yang dapat mengurai jenis dan string primitif menggunakan ekspresi reguler. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |