0Pricing
Java Academy · Pelajaran

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:

  • matches menguji seluruh masukan; lookingAt menguji awal; find mencari di mana saja.
  • Ulangi find untuk menelusuri semua kecocokan dan membaca group, start, serta end.
  • reset mengembalikan posisi ke awal, sedangkan reset(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

  1. Mengompilasi Pola
  2. Menemukan dan Mencocokkan
  3. Grup Penangkap
  4. Mengganti dengan Regex
← Kembali ke Java Academy