Pencocokan Pola dengan Regex
Termasuk bagian Logika & Alur dalam perjalanan Java di Coddy. Pelajaran 47 dari 59.
class Pattern dan Matcher menyediakan alat yang canggih untuk operasi regex di Java. Pertama, mari pahami cara menggunakannya:
Buat pattern menggunakan Pattern.compile():
Pattern pattern = Pattern.compile("cat");
// Membuat pola untuk menemukan "cat"Buat matcher untuk teksmu:
String text = "The cat and dog";
Matcher matcher = pattern.matcher(text);
// Membuat matcher untuk teks tersebutSekarang kamu dapat menemukan kecocokan menggunakan matcher.find():
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}Setelah menjalankan kode di atas, outputnya adalah: Found at: 4
Memahami method:
matcher.find()- Mencari kemunculan pola berikutnya dalam teks- Mengembalikan
truejika kecocokan ditemukan - Mengembalikan
falsejika tidak ada lagi kecocokan - Itulah alasan kita menggunakannya dalam perulangan
while, untuk menemukan semua kemunculan
- Mengembalikan
matcher.start()- Mengembalikan indeks awal (posisi) dari kecocokan terakhir yang ditemukan olehfind()- Dalam contoh kita, "cat" dimulai pada indeks 4 dalam "The cat and dog"
- Harus dipanggil setelah
find()berhasil
Contoh dengan beberapa kecocokan:
Pattern pattern = Pattern.compile("cat");
Matcher matcher = pattern.matcher("cat and cat");
while (matcher.find()) {
System.out.println("Found at: " + matcher.start());
}
// output:
// Found at: 0
// Found at: 8Tantangan
MudahBuat method bernama findWords yang menerima dua argumen:
- Sebuah String (
text) untuk mencari di dalamnya - Sebuah String (
word) yang akan dicari
Method tersebut harus:
- Menggunakan Pattern dan Matcher untuk menemukan semua kemunculan kata tersebut
- Mengembalikan string yang berisi posisi tempat kata tersebut ditemukan
- Memisahkan posisi dengan spasi
Pesan yang dikembalikan harus berupa:
- Jika ada input yang bernilai null: kembalikan "Invalid input"
- Jika kata tidak ditemukan: kembalikan "Not found"
- Jika ditemukan: kembalikan posisi (misalnya, "4 10 15")
Coba sendiri
import java.util.Scanner;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static String findWords(String text, String word) {
// Tulis kodemu di sini
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String text = scanner.nextLine();
String word = scanner.nextLine();
if (text.equals("null")) text = null;
if (word.equals("null")) word = null;
System.out.println(findWords(text, word));
}
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Array Multidimensi
Dasar Array 2DMengakses Elemen Array 2DLoop Bersarang dengan Array 2DRangkuman: Array 2DPenjumlahan dan Pengurangan MatriksArray BergerigiArray 3D dan Lebih JauhPola Umum Array 2DRangkuman: Semua tentang Array2HashMap Bagian 1
Apa itu HashMap?Deklarasikan HashMapMengakses nilaiPeriksa apakah key adaMengubah dictionaryRingkasan: HashMap5HashSet Bagian 2
Matematika: Gabungan HashSetMatematika: Irisan HashSetMatematika: Selisih HimpunanMatematika: Beda SimetrisHimpunan Bagian dan SuperhimpunanMelakukan Iterasi pada set8Operasi String Lanjutan
Dasar StringBuilderPengenalan StringBufferDasar Ekspresi RegulerPencocokan Pola dengan RegexString TokenizerPemformatan String Lanjutan3HashMap Bagian 2
Method HashMapIterasi dengan keySet()Iterasi dengan entrySet()HashMap BersarangRangkuman: Kelola GudangRangkuman: Operasi HashMap6Alur Kontrol Lanjutan
Pernyataan LabelEkspresi SwitchPencocokan PolaKlausa PenjagaRingkasan Alur Kontrol9Proyek: Penghitung Kata Unik
Input dan Penyimpanan TeksPemrosesan KataLatihan sendiri: Compiler Java online
Uji pola pada teksmu sendiri: Penguji Regex