Menemukan dan Mencocokkan
matches, find, lookingAt.
Menemukan dan Mencocokkan adalah pelajaran Java Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Java Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Java Academy mencakup 4 pelajaran total.
Tiga Cara Menerapkan Pola
Matcher menyediakan tiga pengujian inti:
matches()mengharuskan seluruh masukan cocok.lookingAt()mengharuskan kecocokan di awal.find()mencari kecocokan di mana saja.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("\\d+").matcher("42");
System.out.println(m.matches());
}
}matches: Seluruh Masukan
matches mengembalikan benar hanya jika seluruh teks sesuai dengan pola, seolah-olah pola tersebut memiliki jangkar di kedua ujungnya.
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern p = Pattern.compile("\\d+");
System.out.println(p.matcher("123").matches());
System.out.println(p.matcher("123abc").matches());
}
}lookingAt: Kecocokan di Awal
lookingAt berhasil jika masukan diawali dengan kecocokan, meskipun bagian sisanya tidak cocok.
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern p = Pattern.compile("\\d+");
System.out.println(p.matcher("123abc").lookingAt());
System.out.println(p.matcher("abc123").lookingAt());
}
}find: Kecocokan di Mana Saja
find memindai ke depan untuk mencari kecocokan berikutnya. Fungsi ini mengembalikan benar jika ada kecocokan mulai dari posisi saat ini dan seterusnya.
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern p = Pattern.compile("\\d+");
System.out.println(p.matcher("abc123def").find());
}
}Menelusuri Semua Kecocokan dengan find
Memanggil find dalam sebuah loop akan menelusuri setiap kecocokan dalam masukan.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("\\d+").matcher("a1bb22ccc333");
while (m.find()) {
System.out.println(m.group());
}
}
}Posisi Kecocokan: start dan end
Setelah kecocokan berhasil ditemukan, start() dan end() memberikan rentang indeks, sedangkan group() memberikan teks yang cocok.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("\\d+").matcher("abc123");
if (m.find()) {
System.out.println(m.group() + " at [" + m.start() + "," + m.end() + ")");
}
}
}Jangkar dengan find
Jangkar ^ dan $ membuat find berperilaku seperti pemeriksaan awal atau akhir. Di sini ^\d+ hanya mencocokkan digit di posisi paling awal.
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern p = Pattern.compile("^\\d+");
System.out.println(p.matcher("123abc").find());
System.out.println(p.matcher("abc123").find());
}
}Mengatur Ulang Matcher
reset() mengembalikan matcher ke awal sehingga Anda dapat memindai masukan yang sama lagi.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("a").matcher("aaa");
int first = 0;
while (m.find()) first++;
m.reset();
int second = 0;
while (m.find()) second++;
System.out.println(first + " " + second);
}
}Menggunakan Kembali Matcher pada Masukan Baru
reset(newInput) menggunakan kembali objek matcher yang sama dengan teks berbeda, sehingga tidak memerlukan alokasi baru.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("\\d+").matcher("abc");
m.reset("xyz789");
System.out.println(m.find());
System.out.println(m.group());
}
}Ringkasan matches vs find
Pilih sesuai tujuan: gunakan matches untuk memvalidasi seluruh nilai, seperti seluruh ID, dan gunakan find untuk mengambil atau menemukan bagian di dalam teks yang lebih besar.
import java.util.regex.Pattern;
public class Main {
public static void main(String[] args) {
Pattern id = Pattern.compile("[A-Z]{2}\\d{4}");
System.out.println(id.matcher("AB1234").matches());
System.out.println(id.matcher("id=AB1234;").find());
}
}Menghitung Kecocokan
Tugas yang umum adalah menghitung kemunculan. Ulangi find dalam loop dan tambahkan satu ke penghitung.
import java.util.regex.Pattern;
import java.util.regex.Matcher;
public class Main {
public static void main(String[] args) {
Matcher m = Pattern.compile("o").matcher("foo boo zoo");
int count = 0;
while (m.find()) count++;
System.out.println(count);
}
}Pemeriksaan Singkat
Metode mana yang mengharuskan seluruh teks masukan cocok dengan pola?
Ringkasan
Anda telah menemukan kecocokan:
matchesmenguji seluruh masukan;lookingAtmenguji awal;findmencari di mana saja.- Ulangi
finduntuk menelusuri semua kecocokan dan membacagroup,start, sertaend. resetmengembalikan posisi ke awal, sedangkanreset(input)menggunakan kembali matcher pada teks baru.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Menemukan dan Mencocokkan” gratis?
Ya — teks lengkap “Menemukan dan Mencocokkan” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Java Academy, upgrade ke CoddyKit PRO. Kursus Java Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Menemukan dan Mencocokkan”?
matches, find, lookingAt. Kamu berlatih Java Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Java Academy?
Tidak diperlukan pengalaman sebelumnya. Java Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.
Berapa lama pelajaran “Menemukan dan Mencocokkan” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Java Academy ini?
Ya. Setiap pelajaran Java Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mengompilasi Pola
- Menemukan dan Mencocokkan
- Grup Penangkap
- Mengganti dengan Regex