Rumah > Java > javaTutorial > teks badan

Bagaimanakah `Scanner.useDelimiter()` Java Boleh Digunakan dengan Ungkapan Biasa untuk Memisahkan Input?

Barbara Streisand
Lepaskan: 2024-11-26 00:08:11
asal
162 orang telah melayarinya

How Can Java's `Scanner.useDelimiter()` Be Used with Regular Expressions to Split Input?

Memahami Scanner.useDelimiter dengan Ungkapan Biasa

Dalam API Pengimbas Java, kaedah useDelimiter() membolehkan anda menentukan pembatas untuk memisahkan masukkan teks ke dalam token. Walau bagaimanapun, pembatas selain daripada ruang putih boleh digunakan, yang memerlukan pemahaman tentang pola ungkapan biasa (regex).

Corak Regex dalam penggunaanDelimiter()

Untuk menggunakan pembatas dengan useDelimiter(), anda perlu menyediakan corak regex. Corak ini mentakrifkan aksara atau jujukan yang sepatutnya memisahkan token.

Sebagai contoh, coretan kod di bawah menggunakan pembatas "|,|rn" untuk memisahkan input berdasarkan koma (",") atau baris baharu (rn):

sc = new Scanner(new File(dataFile));
sc.useDelimiter(",|\r\n");
Salin selepas log masuk

Ini bermakna pengimbas akan menganggap koma dan baris baharu sebagai pemisah, membahagikan input kepada token.

Contoh

Untuk menggambarkan cara useDelimiter() berfungsi dengan corak regex, pertimbangkan contoh berikut:

String input = "1 fish 2 fish red fish blue fish";

// Use "\s*fish\s*" as the delimiter to split the input
Scanner s = new Scanner(input).useDelimiter("\s*fish\s*");

System.out.println(s.nextInt());   // prints: 1
System.out.println(s.nextInt());   // prints: 2
System.out.println(s.next());      // prints: red
System.out.println(s.next());      // prints: blue
Salin selepas log masuk

Di sini, pembatas "sikan" sepadan dengan 0 atau lebih ulangan aksara ruang putih ("s*") diikuti dengan perkataan "fish" dan sekali lagi 0 atau lebih ulangan ruang kosong. Akibatnya, input dibahagikan kepada token berdasarkan pembatas, dan pengimbas boleh mengekstrak nilai yang diingini.

Sumber Tambahan

Untuk maklumat lanjut tentang useDelimiter( ) dan corak regex, rujuk sumber berikut:

  • API Pengimbas: https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html
  • Tutorial Regex: https://www.vogella.com/tutorials/JavaRegularExpressions/article. html
  • Rujukan Pantas Regex: https://www.regular-expressions.info/quickref.html

Atas ialah kandungan terperinci Bagaimanakah `Scanner.useDelimiter()` Java Boleh Digunakan dengan Ungkapan Biasa untuk Memisahkan Input?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan