Rumah  >  Artikel  >  Java  >  Bagaimanakah `Scanner.useDelimiter()` Java berfungsi dengan Ungkapan Biasa?

Bagaimanakah `Scanner.useDelimiter()` Java berfungsi dengan Ungkapan Biasa?

DDD
DDDasal
2024-11-21 06:12:17784semak imbas

How Does Java's `Scanner.useDelimiter()` Work with Regular Expressions?

Memahami Pembatas dengan Scanner.useDelimiter dalam Java

Memecahkan Soalan

Apabila menggunakan kelas Pengimbas untuk menghuraikan fail, anda mungkin menghadapi useDelimiter() kaedah, tetapi tingkah lakunya boleh mengelirukan. Artikel ini akan memberikan penjelasan ringkas tentang cara pembatas berfungsi bersama-sama dengan kelas Pengimbas.

Pembatas dalam Pengimbas.useDelimiter

Kelas Pengimbas, apabila digunakan untuk menghuraikan input, boleh dikonfigurasikan untuk digunakan watak atau corak tertentu sebagai pembatas. Secara lalai, aksara ruang putih (seperti ruang, tab dan baris baharu) berfungsi sebagai pembatas. Walau bagaimanapun, anda boleh menentukan pembatas anda sendiri menggunakan kaedah useDelimiter().

Cara Pembatas Berfungsi

Sebagai contoh, pertimbangkan kod berikut:

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

Dalam contoh ini , pembatas yang dinyatakan ialah koma (",") atau pemulangan gerabak diikuti dengan baris baharu ("rn"). Ini bermakna bahawa Pengimbas akan menganggap sebarang kejadian sama ada aksara atau gabungan sebagai pembatas.

Contoh Penggunaan Pembatas

Untuk menggambarkan cara ini berfungsi, pertimbangkan rentetan input berikut:

1 fish 2 fish red fish blue fish

Apabila diproses menggunakan objek Pengimbas yang dikonfigurasikan dengan pembatas yang ditentukan, ia akan membahagikan input kepada token seperti berikut:

1
2
red
blue

Ungkapan Biasa

Pembatas yang dinyatakan dalam useDelimiter () boleh termasuk ungkapan biasa (regex). Ungkapan biasa ialah cara ringkas dan berkuasa untuk menentukan corak kompleks dalam teks. Regex yang digunakan dalam contoh di atas, ",|rn", sepadan sama ada koma atau pemisah baris.

Nota Tambahan

  • Memahami ungkapan biasa adalah penting untuk penggunaan pembatas yang berkesan dalam Scanner.useDelimiter().
  • Bahagian "Nota" menyediakan ringkasan berguna sintaks ungkapan biasa.
  • Ingat untuk menutup objek pengimbas menggunakan kaedah close() untuk melepaskan sumber.

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

Kenyataan:
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