Rumah > pangkalan data > tutorial mysql > Bagaimanakah Saya Boleh Melaksanakan Pembanding Java dengan Fungsi Pengendali `LIKE` SQL?

Bagaimanakah Saya Boleh Melaksanakan Pembanding Java dengan Fungsi Pengendali `LIKE` SQL?

Linda Hamilton
Lepaskan: 2024-12-26 21:26:15
asal
707 orang telah melayarinya

How Can I Implement a Java Comparator with SQL's `LIKE` Operator Functionality?

Melaksanakan Pembanding Java dengan Semantik Operator 'LIKE' SQL

Dalam SQL, operator 'LIKE' digunakan secara meluas untuk pemadanan berdasarkan rentetan pada corak tertentu. Untuk mencapai kefungsian serupa dalam Java, kami boleh mencipta pembanding tersuai yang mempamerkan gelagat yang sama.

Penyelesaian Menggunakan Ungkapan Biasa

Ekspresi biasa Java boleh digunakan untuk meniru pengendali 'LIKE'. Dengan menggunakan aksara kad bebas '*', sebarang jujukan aksara boleh dipadankan. Sebagai contoh, ungkapan biasa berikut akan sepadan dengan mana-mana rentetan yang mengandungi 'ital' di mana-mana sahaja:

.*ital.*
Salin selepas log masuk

Begitu juga, pemegang tempat aksara tunggal boleh diwakili oleh titik('.'). Jadi, ungkapan biasa di bawah akan memadankan mana-mana rentetan dengan 'gi' diikuti dengan mana-mana aksara tunggal, berakhir dengan 'a':

.*gi.a.*
Salin selepas log masuk

Untuk memadankan titik literal, elakkannya menggunakan garis miring:

\.
Salin selepas log masuk

Melaksanakan Pembanding

Menggunakan ungkapan biasa, kami kini boleh melaksanakan Java pembanding yang berkelakuan seperti pengendali SQL 'LIKE':

import java.util.Comparator;
import java.util.regex.Pattern;

public class LikeComparator implements Comparator<String> {

    @Override
    public int compare(String s1, String s2) {
        Pattern pattern = Pattern.compile(s2);
        return pattern.matcher(s1).matches() ? 0 : 1;
    }
}
Salin selepas log masuk

Contoh Penggunaan

Untuk menggunakan pembanding, hanya buat seketika dan bandingkan rentetan menggunakan 'bandingkan' kaedah:

LikeComparator comparator = new LikeComparator();

System.out.println(comparator.compare("digital", "%ital%")); // true
System.out.println(comparator.compare("digital", "%gi?a%")); // true
System.out.println(comparator.compare("digital", "digi%")); // true
System.out.println(comparator.compare("digital", "%cam%")); // false
System.out.println(comparator.compare("digital", "tal%")); // false
Salin selepas log masuk

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Pembanding Java dengan Fungsi Pengendali `LIKE` SQL?. 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